我的朋友和我在看到它和答案之后在Java中对这个陈述感到困惑。 这是如何工作的?
System.out.printf("%d", 077);
等于63?
答案 0 :(得分:7)
077
是octal 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。