印83

System.out.println(0123)


但是,此打印123

System.out.println(123)


为什么这样工作?

最佳答案

前导零表示使用octal (a base-8 number)表示文字。

可以通过执行(1 * 8 * 8) + (2 * 8) + (3)转换0123,该值等于十进制的83。
由于某些原因,八进制浮点数不可用。

如果您不希望文字以八进制表示,则不要使用前导零。

还有一个0x前缀,表示文字以十六进制(基数16)表示。

关于java - 为什么带有前导零的整数文字会被奇怪地解释?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60010144/

10-16 06:20