领先的零如何改变Java中的数字文字?

时间:2015-02-04 20:54:32

标签: java

我的朋友和我在看到它和答案之后在Java中对这个陈述感到困惑。 这是如何工作的?

System.out.printf("%d", 077);

等于63?

3 个答案:

答案 0 :(得分:7)

077octal number,等于7 x 8 1 + 7 x 8 0 ,其为63十进制。要显示您可以执行的八进制值

System.out.printf("%o", 077);

答案 1 :(得分:2)

当您定义带有0前缀的文字整数时,编译器会将其视为整数基数8.(八进制)。

点击此帖http://rodrigosasaki.com/2013/06/10/number-literals-in-java/

因此,Octal base中的77值实际上是63的十进制数。

答案 2 :(得分:0)

077 = 7 * 8 ^ 0 + 7 * 8 ^ 1 = 63; 0123 = 3 * 8 ^ 0 + 2 * 8 ^ 1 + 1 * 8 ^ 2 = 3 + 16 + 64 = 83; 第一个0表示八进制值。

0x77 - 是十六进制val。