说明
int类型为4字节 32bit
char 类型为1字节 8bit
所以数字要存到char中 要截断 只保留后8位
计算也是只保留后8位
代码
#include <stdio.h>
//int 4byte 32bit
//char 1byte 8bit
int main()
{
char a = 5;
//0000 0000 0000 0000 0000 0000 0000 0101 int5的二进制
//0000 0101 char a 8bit 截断
char b = 126;
//0000 0000 0000 0000 0000 0000 0111 1110 int126
//0111 1110 char b
char c = a + b;
//0000 0000 0000 0000 0000 0000 0000 0101 -int5
//0000 0000 0000 0000 0000 0000 0111 1110 -int126
//0000 0000 0000 0000 0000 0000 1000 0011
//1000 0011 -c
//以符号位补全32bit
//1111 1111 1111 1111 1111 1111 1000 0011 -补码
//1111 1111 1111 1111 1111 1111 1000 0010 -反码
//1000 0000 0000 0000 0000 0000 0111 1101 -原码 -125
printf("c=%d\n", c);
return 0;
}