Java中的数字文字 - 八进制?

时间:2015-06-22 10:34:49

标签: java literals octal

以下是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。

为什么输出不同?这段代码背后的计算是什么?

1 个答案:

答案 0 :(得分:8)

-0777被编译器视为八进制数(基数8),其十进制值为-511( - (64 * 7 + 8 * 7 + 7))。 -777是十进制数。