思考1:
#include<stdio.h>
int main()
{
unsigned int a=2147483648;
printf("%d",a);
return 0;
}
输出:-2147483648
2147483648是2^31.
-2147483648的补码就是0x80000000.
有符号中这个是个很特殊的数字.
思考2:
#include<stdio.h>
int main()
{
if(0U<-1)
{
printf("smile\n");
}
return 0;
}
输出:smile
无符号和有符号一起运算时有符号会被当作无符号整数。
-1在计算机里存储0xffffffff.被当作无符号整数时等于2^32-1
有符号和无符号整数在计算机的存储
一般的机器都是按照补码存储有符号整数
按照原码存储无符号整数。