领先的零如何改变Java中的数字文字?
看到它和答案之后,我和我的朋友们在Java中对这句话感到困惑。 这个怎么用?
System.out.printf("%d", 077);
等于63?
077
是八进制数 ,等于7 x 8 1 + 7 x 8 0 ,即十进制63
。 要显示您可以执行的八进制值
System.out.printf("%o", 077);
当您定义带有0前缀的文字整数时,编译器会将其视为整数基数8.(八进制)。
查看这篇文章http://rodrigosasaki.com/2013/06/10/number-literals-in-java/
因此,Octal base中的77值实际上是Decimal base中的63。
077 = 7 * 8 ^ 0 + 7 * 8 ^ 1 = 63; 0123 = 3 * 8 ^ 0 + 2 * 8 ^ 1 + 1 * 8 ^ 2 = 3 + 16 + 64 = 83; 第一个0表示八进制值。
0x77 – 是hexval。