可能重复:
带有前导零的整数
有人可以告诉我这里发生了什么吗?当我使用前导零初始化一个int时,程序不会忽略零,而是做一些我不知道的其他操作.
int num = 0200;
System.out.println(num); // 128
System.out.println(033); // 27
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 11
当然 - 根据Java语言规范第3.10.1节,它将它视为八进制文字:
八进制数字由ASCII数字0后跟一个或多个ASCII数字0到7组成,并且可以表示正整数,零整数或负整数.
Run Code Online (Sandbox Code Playgroud)OctalNumeral: 0 OctalDigits OctalDigits: OctalDigit OctalDigit OctalDigits OctalDigit: one of 0 1 2 3 4 5 6 7注意,八进制数字总是由两个或更多个数字组成; 0总是被认为是十进制数字 - 在实践中并不重要,因为数字0,00和0x0都表示完全相同的整数值.