为什么打印的值与输入的不一样?前导零会改变读取整数的方式吗?
Integer[] secondArray = {02,03,04,05,06,011,012,012,0123};
System.out.println("values:" + Arrays.toString(secondArray));
输出:2,3,4,5,6,9,10,10,83
答案 0 :(得分:3)
Java中的整数文字中的前导零(以及许多其他语言)表示八进制编号(基数为8)。
所以011
是九。
您可以使用的其他系统是十六进制(0x09
,基数16)和二进制(0b1001
,因为Java7)。
答案 1 :(得分:1)
前导0的整数被视为八进制(基数为8)。 转换如下
Octal Decimal
06 -> 6
07 -> 7
08 (Not a valid octal number)
09 (Not a valid octal number)
010 -> 8
011 -> 9
012 -> 10
等等