1
public class Example {

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

なぜそれが印刷され、印刷107されないのか誰かが説明できますか153?

4

3 に答える 3

2

107 の 8 進数は 0153

Java では、次のように先行ゼロを追加するだけで 8 進リテラルを作成できます。 int a = 0755; 気をつけて!8 進リテラルを指定することは非常に一般的です。

于 2012-04-10T19:45:01.623 に答える
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)
于 2012-04-10T19:55:14.553 に答える
0

で始まる0数値は、Java では 8 進数と見なされるためです。01538 進数は10710 進数です。

于 2012-04-10T19:45:09.837 に答える