目录
补充:和本章节无关
看一段代码
int i=-20;
unsigned int j=10;
printf("%d\n,i+j);
printf("%u\n,i+j);
1111 1111 1111 1111 1111 1111 1110 1100 (-20)
0000 0000 0000 0000 0000 0000 0000 1010(10)+
1111 1111 1111 1111 1111 1111 1111 0110
对于补码:1111 1111 1111 1111 1111 1111 1111 0110
以有符号数%d解释
其原码为:1000 0000 0000 0000 0000 0000 0000 1010
结果就应该是-10
以无符号数%u解释
原反补相同,打印出一个很大的数
再一次说明了空间类型决定解释空间中数据的方式
在看一段代码:
unsigned int i;
for(i=9;i>=0;i--)
{
printf("%u",i);
Sleep(1000);//睡眠一秒
}
这个程序必定死循环
unsigned int读取数据的时候不可能读到小于0的数
注意:当i=0再加-1的时候,i是多少?
0000 0000 0000