整数数组中的前导零导致打印不同的值
Leading zeroes in Integer array leading to different values being printed
为什么打印出来的值和输入的不一样?前导零会改变读取整数的方式吗?
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
等等
为什么打印出来的值和输入的不一样?前导零会改变读取整数的方式吗?
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
等等