2012-04-10 6 views
1
public class Example { 

    public static void main(String args[]) { 
     int a = 0153; 
     int b=a; 
     System.out.println(""+b); 
    } 
} 

107で、なぜ153ではないのか説明できますか? 107のJavaで整数を代入する

+9

「0153」は8進数とみなされるためです。 @Lionが正しくあります。 – Lion

+0

Java仕様の「整数リテラル」のセクションを参照してください。http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.10.1 – NullUserException

答えて

2

オクタル・Javaで0153

あなたは、単にこのような先行ゼロ追加することにより、進リテラルを作成することができます:int型、A = 0755;注意してください! 8進リテラルを指定するのは非常に一般的です

0

0で始まる番号はJavaで8進数と見なされるため、非常に一般的です。 0153(8進数)は107(10進数)です。

0

8進数として書き込み、デフォルト値を10進数に出力します。

  Input       Prints (decimal) 

Decimal 153        153 
     ^
     No leading zero (digits 0-9) 

Octal 0153        107 
     ^
     leading zero (digits 0-7) 

Hex  0x153       339 
     ^^ 
     leading 0x (digits 0-F)