C语言_整型提升
整型提升:
1.有符号数,提升的高位全取符号位
2.无符号数,提升的高位全取0.
比如 :
char a = -1;
printf("%d\n,a);
-1:
10000000_00000000_00000000_00000001(原码)
11111111_11111111_11111111_11111110(反码)
11111111_11111111_11111111_11111111(补码,在内存中a以补码形式存储)
char a 在内存中按8位,2进制存放:
11111111
printf()打印a,按照“%d”,打印有符号整数。(4字节)所以要对a进行整型提升,a是有符号数,高位填1
提升后,a:
11111111_11111111_11111111_11111111
char b = -128;
printf("%d\n,b);
浙公网安备 33010602011771号