关于符号扩展 的问题 刚刚入门

img

img


为什么第一个和第二个结果不一样

char c = 132,实际c的值是个负值,因为char的范围最大值到127,所以132就是负值了
unsigned char c = 132, c是无符号的,最大值到255,所以132还是132

因为类型不一样。
第一种是char类型,对应的数据范围是-128-127,由于132大于127,会进行数据转换,最后得到132-256=-124
第二种是int类型,对应的数据范围大于132,所以直接输出132.