1.定义
整型提升是C程序设计语言中的一项规定:在表达式计算时,各种整型首先要提升为int类型,如果int类型不足以表示则要提升为unsigned int类型;然后执行表达式的运算。
2.代码演示
//整型提升
int main()
{
//char -- 2 个字节 --> 8 个bit
char a = 3; //--有符号的char
// 00000011 --> 整型提升: 00000000000000000000000000000011
char b = 127;
// 01111111 --> 整型提升: 00000000000000000000000000111111
char c = a + b;
// 00000011 +
// 01111111 =
// 10000010 --> 整型提升: 11111111111111111111111110000010 -->截断保留8个bit位 : 10000010 (-126)
printf("%d\n", c); //打印的是整形,所以需要整型提升后再运算,运算完成后进行截断,
return 0;
}
3.补充
这里涉及到原码、反码和补码的知识 计算机中,正数的原码反码和补码三者一致,而负数则不相同,电脑中存储的往往是补码,而非原码,三者的关系如下:
原码:10000000000000000000000000000001 (最高位为符号位,0表示正数,1表示负数) 反码:11111111111111111111111111111110 (符号位不变,其他位按位取反)
补码:11111111111111111111111111111111 (反码+1得到补码)
















