public class Example {
public static void main(String args[]) {
int a = 0153;
int b=a;
System.out.println(""+b);
}
}
なぜそれが印刷され、印刷107
されないのか誰かが説明できますか153
?
107 の 8 進数は 0153
Java では、次のように先行ゼロを追加するだけで 8 進リテラルを作成できます。 int a = 0755; 気をつけて!8 進リテラルを指定することは非常に一般的です。
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)
で始まる0
数値は、Java では 8 進数と見なされるためです。0153
8 進数は107
10 進数です。