关于整型提升与截断,可以看我的博客
C语言:截断+整型提升+算数转换练习_c语言unsigned-CSDN博客
一、题目
二、题解
?char a=101截断
由于101是整型数据,需要32比特位存储空间,而变量a是char类型数据,只能存放8比特位存储空间。因此,需要对整型数据101进行截断:
0000 0000 0000 0000 0000 0000 0110 0101(101原码)
0000 0000 0000 0000 0000 0000 0110 0101(101补码)
0110 0101(char型变量a中截断存放的补码)
a+=27 对变量a进行整型提升(补码的高位补符号位)
0000 0000 0000 0000 0000 0000 0110 0101(char型变量a整型提升后的补码)
0000 0000 0000 0000 0000 0000 0001?1011(27的补码)
1000 0000(a+27经过截断后存放到char型变量a中的补码)
1111 1111 1111 1111 1111 1111?1000 0000(a+27整型提升后的补码)
0000 0000 0000 0000 0000 0000 1100 1000(200的补码)
0000 0000 0000 0000 0000 0000?0100 1000(200+a的补码)
0000 0000 0000 0000 0000 0000?0100 1000(200+a的原码)
转换为十进制为72
此题答案为 D