不清楚输出第三行的结果

为什么第三行输出的结果是ch1=-92 ch2=5 不是很明白,我感觉答案是ch1=164,ch2=261

img

img

因为char类型的取值范围是-128到127啊,不可能输出164和261的
164实际是最高位为1,对应的负数就是-92,也就是164-256 = -92
261直接超出了8位的存储范围,所以261-256 = 5

char范围 -128到127 ,164,261超过char范围,进行补码操作了,就变成负数了

char是有符号数呀,最大127,最小-128,164和261都溢出了呀