我对Java很新。我这样做了:
System.out.println(01111);
打印4680
。为什么它没有打印01111
?
提前致谢。
答案 0 :(得分:8)
如果要打印字符串“01111”,请将其放在引号中。这就是你在Java中指定一串字符的方法。
没有十进制数字01111,因此尝试打印出十进制数字01111是不可能的。
你得到4680的原因是,在Java源代码中,数字常量前的前导零表示数字以八进制指定,数字以十进制打印。 11110八进制= 4680十进制。 (你必须完成01110
才能获得4680,01111
会给你585。)
答案 1 :(得分:2)
它打印585,而不是4680。
Integer literals that start with 0
are octal numerals。所以1111是585的八进制表示。
答案 2 :(得分:1)
在0之前的整数表示它是octal number字面值,因此您的数字为1*8^3+1*8^2+1*8^1+1*8^0
。
答案 3 :(得分:0)
因为0前缀表示八进制整数(基数为8)。所以,1111八进制是小数点后585。
答案 4 :(得分:0)
这是您尝试打印的数字的octal表示。您应该获得的输出是"585"
而不是"4680"
。