考虑代码:
public class Test
{
public static void main(String[] args)
{
int i = -0777;
System.out.printf("%d",i);
}
}
代码产生输出-511,我期望它是-777
答案 0 :(得分:8)
-0777
前缀的 0
表示该数字为八进制。
-777
为十进制-511
。
答案 1 :(得分:1)
-0777
表示数字为八进制。所以,
-(7*(8^2)+7*(8^1)+7*(8^0))
这是-511
十进制