因为前者是两个ascii码相加后转成char,char再转int输出;后者是两个ascii相加84+69=153直接作为int输出。
而对于前者: char如下所示其范围-128~127:
0000 0000 -》 0111 1111 0 -》 127
1000 0000 -》 1111 1111 -128 -》 -1
即对于你自己的写法可以表示为 01010100 + 01000101=10011001 算到这儿,可知1是符号位 剩下7位是0011001=25,那么计算结果就是1000000= -128 加上这个25= -103 即为最终结果。
(此处更详细的原理可见https://blog.csdn.net/sbknight/article/details/122240235)
两个字符想加可以对比ascii表看下结果,注意char的取值范围
anscii相关的内容,本质上就是多了一个整型相加,没什么特别的。