sizeof(short int ) = 2;
测试用例
#include <stdio.h>
int main()
{
short int a = -32768;
short int b = 0x8000;
short int c = 0xffff;
short int d = 0x8001;
printf("%d, %d, %d, %d\n", a, b, c, d);
a -= 1;
b -= 1;
c -= 1;
d -= 1;
printf("%d, %d, %d, %d\n", a, b, c, d);
return 0;
}
结果:
b, c, d的表示均为16进制表示,即机器的存储形式, 补码表示
负数溢出计算
理解一:(按机器存储来看,存储均为补码形式)
a 的补码形式(存储形式)为 1000......
阅读全文