为什么打印的值与输入的值不同?前导零会改变读取整数的方式吗?
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
为什么打印的值与输入的值不同?前导零会改变读取整数的方式吗?
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
Java(和许多其他语言)中整数文字中的前导零表示八进制数(以 8 为基数)。
011
九也是如此。
您可以使用的其他系统是十六进制(0x09
,基数 16)和二进制(0b1001
,从 Java7 开始)。
前导 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
等等