1

可能重复:
带前导零的整数

我对 Java 很陌生。我这样做了:

System.out.println(01111);

打印4680。为什么没有打印出来01111

提前致谢。

4

5 回答 5

8

如果要打印字符串“01111”,请将其放在引号中。这就是在 Java 中指定字符串的方式。

没有十进制数 01111,所以试图打印出十进制数 01111 是不可能的。

您得到 4680 的原因是,在 Java 源代码中,数字常量前的前导零表示该数字以八进制指定,而数字以十进制打印。11110 八进制 = 4680 十进制。(你必须这样做01110才能得到 4680,01111本来会给你 585。)

于 2012-08-24T13:02:30.950 回答
2

它打印 585,而不是 4680。

0以八进制数字开头的整数文字。所以 1111 是 585 的八进制表示。

于 2012-08-24T13:03:04.487 回答
1

以 0 开头的整数表示它是八进制数字文字,因此您的数字是1*8^3+1*8^2+1*8^1+1*8^0.

于 2012-08-24T13:04:35.017 回答
0

因为 0 前缀表示八进制整数(以 8 为基数)。因此,八进制 1111 是十进制 585。

于 2012-08-24T13:02:47.067 回答
0

这是您尝试打印的数字的八进制表示。你应该得到的输出是"585"而不是"4680"

于 2012-08-24T13:05:38.687 回答