整形提升


什么叫做整形提升:

         CPU在运算时操作字长是按照整形(int)来进行运算的。依次要把参与运算的char型和short int转化成int型进行计算。

        即使两个char型相加也需先转化为CPU内的标准形式,在进行计算。

1、隐式类型转换(整形提升)【针对char 、short int类型】

计算形式为char型,输出形式为格式化十进制输出形式,这就需要进行整形提升,那么如何进行提升呢?

#整形提升是按照变量数据类型的符号位来进行提升的。

 在32位环境下,有2的32次方个寻址路线。因为a、b定义为char型,只占1个字节,1字节=8bit,

    以符号位进行提升:

 提升后,得到相加的结果,c的定义类型为char型,因此只能截取8个bit位

    得到:c=10000010

但输出是以格式化十进制整形输出,因此需要对c进行提升。逻辑顺序,a和b的值相加赋给了c,因此c的内存存了a和b的和。

然而CPU都是以补码的形式进行储存的,而提升是对原码进行提升的。这块还绕了一圈。

 有意思的是:整形提升是根据符号位来提升的(符号位不变)、而原反补码的转化符号位也是不变的。

得到原码:%d输出,32位全要,但第一个 1 是符号位(0正1负)

得到:c=-126

C