int 类型占四个字节,一个字节8位,即int类型有32位
unsigned int 占2个字节,即16位
以一道题为例:
unsigned int i=10;
int j=-20;
i+j=?
在程序中负数用补码进行运算,int为32位,所以-20的补码是1111 1111 1111 1111 1111 1111 1110 1100,unsigned int i=10 为16位,即0000 0000 0000 1010,相加得到1111 1111 1111 1111 1111 1111 1111 0110,换算成十进制,所以i+j=4294967286。
程序如下:
运行结果如下: