以下是java on datatypes中的一些代码:
class Test
{
public static void main(String args[])
{
int i = -0777;
System.out.println(i);
}
}
上述代码的输出为-511
如果代码更改为:
class Test
{
public static void main(String args[])
{
int i = -777;
System.out.println(i);
}
}
输出为-777。
为什么输出不同?这段代码背后的计算是什么?
答案 0 :(得分:8)
-0777
被编译器视为八进制数(基数8),其十进制值为-511( - (64 * 7 + 8 * 7 + 7))。 -777
是十进制数。