为什么执行 int a=-1; printf("%d,%O",a,a);时输出为-1,177777,谢谢
为什么执行 int a=-1; printf("%d,%O",a,a);时输出为-1,177777,谢谢
日期:2021-06-23 13:09:50 人气:1
这是因为int在计算机中是以补码形式存放的。
在16位的C编译器中,int占2个字节,-1的补码是1111111111111111(16个1)
所以,以十进制输出时为-1,以八进制输出时就是177777
在16位的C编译器中,int占2个字节,-1的补码是1111111111111111(16个1)
所以,以十进制输出时为-1,以八进制输出时就是177777