1、基本概念

1、整型提升的定义: C的整型算术运算总是至少已缺省整型类型的精度来进行。为了获得这种精度,表达式中的字符和短整型操作数在使用前辈转换为普通整型,这种转换被称为整型提升我的理解:再进行整型算数运算时,要把字符和短整型的二进制位数提升到整型的位数(32位)。字符原来为8位,要提升到32位,在前补24位。短整型原来为16为,在前补16位。 2、为什么要整型提升 整型算术运算要在计算机cpu内的整型运算器中进行。而整型运算器的操作数字节长度是整形int的字节长度。所以在整型计算时,要将所有数据提升至整形int的字节长度32位,即4字节。 3、如何进行整型提升 按照变量的数据类型的符号位来补足。 若为负数(符号位为1),整型提升时补1; 若为0和正数(符号位为0),整型提升时补0。 !!注意: 1、整型提升针对的是补码。 2、整型提升完成计算后,若变量定义为字符或短整形,要根据变量类型进行截断。 例如:char a = 1 整型提升前(补码):00000001 整型提升后(补码):00000000 00000000 00000000 00000001 char b= -1 整型提升前(补码):11111111 整型提升后(补码):11111111 11111111 11111111 11111111

2、易错例题

输出结果: 分析: