可能重复:
带前导零的整数
我对 Java 很陌生。我这样做了:
System.out.println(01111);
打印4680
。为什么没有打印出来01111
?
提前致谢。
如果要打印字符串“01111”,请将其放在引号中。这就是在 Java 中指定字符串的方式。
没有十进制数 01111,所以试图打印出十进制数 01111 是不可能的。
您得到 4680 的原因是,在 Java 源代码中,数字常量前的前导零表示该数字以八进制指定,而数字以十进制打印。11110 八进制 = 4680 十进制。(你必须这样做01110
才能得到 4680,01111
本来会给你 585。)
它打印 585,而不是 4680。
0
以八进制数字开头的整数文字。所以 1111 是 585 的八进制表示。
以 0 开头的整数表示它是八进制数字文字,因此您的数字是1*8^3+1*8^2+1*8^1+1*8^0
.
因为 0 前缀表示八进制整数(以 8 为基数)。因此,八进制 1111 是十进制 585。
这是您尝试打印的数字的八进制表示。你应该得到的输出是"585"
而不是"4680"
。