字符变量运算后ch应该为140,输出时为何为ch=-116?

代码为:

#include <stdio.h>                                                             
void main()
{
  char ch1,ch2,ch;
  unsigned char c;
  int a;
  ch1=80;
  ch2=60;
  ch=ch1+ch2;
  c=ch1+ch2;
  a=ch1+ch2;
  printf("ch1+ch2=%d\n",ch1+ch2);
  printf("ch=%d\n",ch);
  printf("c=%d\n",c);
  printf("a=%d\n",a);
}

运行后为

img

遇到的问题是:
输出的ch,为什么ch= -116,而不是ch=140

char类型取值范围是 -128 到 127 ,140超过范围了,
你赋值140 等于是 140 - 256 = -116

如有帮助,望采纳!谢谢!