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得到补码)