short s = 0xFF;
unsigned short u = 0xFF;
printf("s=%d,u=%d\n", s,u);
s = 0x7FFF;
u = 0x7FFF;
printf("s=%d, u=%d\n", s,u);
s = s+1;
u =u+1;
printf("s=%d, u=%d\n", s,u);//-32768 32768
u =-16;
s =-16;
printf("s=%d, u=%d\n", s,u); // u -16+65536 = 65520
u = 65535
s = 65535
printf("s=%d, u=%d\n", s,u); // s 65535 -65536 = -1
u = 0xabcd;
s = 0xabcd;
printf("s=%d, u=%d\n", s,u); //0xabcd - 65536 = -21555
越界的转换 负的加 正的减 最大值
原来的数是负数 加最大值
原来的数是正数 减最大值
unsigned int n;
printf "%d", n/10/10/10/10/10/10/10%10
signed int n 越界输出负数
printf "%d", n/10/10/10/10/10/10/10%10
BKMGT
1K =1024 b 2^10
1M = 1024K 2^20
1G = 1024 M 2^30
4G = 2^32
1T = 1024 G
64K = 64*1024 = 65536
2G = 0X80000000//正负分界
4G = 0X100000000
原文:https://www.cnblogs.com/MWDEYI/p/14835746.html