今天没有学特别多东西,因为学到这里发现对于进制转换不是特别清楚。
//表达式求值 - 隐式类型转换
//整型提升
#include <stdio.h>
//整型提升
int main()
{
char a = 30;
//3 00000000000000000000000000000011 - 3
//char a 00000011 - 3
char b = 127;
//127 00000000000000000000000001111111 - 127
//char b 01111111 - 127
char c = a + b;
//128 10000000
//int 128 11111111111111111111111110000000 - 补码
//int 128 11111111111111111111111101111111 - 反码
//int 128 10000000000000000000000010000000 - 原码
//a+b 00000000000000000000000010000010 - 130
//char c 10000010 - 130
//char c -> int c
//int c 11111111111111111111111110000010 - 补码
//int c 11111111111111111111111110000001 - 反码
//int c 10000000000000000000000001111110 - 原码 -126
printf("%d\n", c);
//由上可知,char类型最大应该存放127。
//因为127 - 01111111 这里符号位还是0,哪怕再加一个符号位也为1了。
return 0;
}
以上注释部分是我的推算部分。