public class Test {
public static void main(String[] args) {
int i = 012;
System.out.println(i);
}
}
为什么输出是:10
?
答案 0 :(得分:14)
如果一个数字从0开始,那么它是一个基数为8的八进制数。 012是十进制的10
答案 1 :(得分:7)
请参阅JLS:
八进制数字由ASCII数字 0后跟一个或多个组成 ASCII数字0到7 穿插着下划线,并且可以 表示正整数,零整数或负整数。
写一个good practice:
int i = 0_12;
现在可能更清楚了,十进制的i
是2 * 8 0 + 1 * 8 1 = 10.
答案 2 :(得分:3)
八进制数:
以0
开头的任何数字都被视为八进制数(012
),即基数为8的数字系统
简单的八进制数评估:
1*8^1 + 2*8^0 = 10
答案 3 :(得分:2)
012是十进制10的八进制值。所以你告诉java在八进制位012打印整数。这里:http://www.asciitable.com/显示八进制到十进制的vululue转换。