为什么代码产生输出-511

时间:2013-04-28 06:45:40

标签: java int

考虑代码:

public class Test
{   
    public static void main(String[] args)
    {
        int i = -0777;
        System.out.printf("%d",i);
    }
}

代码产生输出-511,我期望它是-777

2 个答案:

答案 0 :(得分:8)

带有-0777前缀的

0表示该数字为八进制。

八进制中的

-777为十进制-511

答案 1 :(得分:1)

-0777表示数字为八进制。所以,

-(7*(8^2)+7*(8^1)+7*(8^0))

这是-511十进制