题目:char型数据在微机存储值为0xc0,则printf以%d打印值为?
答:
由已知char型数据
十六进制 0xc0
先将c转换为二进制得到1100,0为0000
得到c0二进制为0B1100 0000
char型数据无符号取值范围为[0,255];
char型数据有符号取值范围为[-128,127],题目中并未规定char型数据为无符号
所以char采用默认有符号
0xc0=0B1100 0000=192(十进制)
192超出范围,溢出,判断为负数得出1为符号数
求得反码10111111 ,反码+1
得到补码11000000
1为符号位,所以0xc0用printf以%d打印值为”-64”