关于什么是c语言整形的提升

关于什么是c语言整形的提升,第1张

1:什么是整形的提升

整形提升就是指在运算过程中所用到数据类型小于整形,在CPU中他的运算度是32个字节就会把数据提升成整形。

2:如何理解整形的提升

为了更加直观的理解什么是整形的提升我用一个题来举例说明。设一个char类型的变量a赋值为3,b赋值为127和c的值是a+b。最后用十进制打印出c的值。

在这里就会用到整形的提升。我们说3是一个整形,正数在内存中的存储原码及补码那就是(整形的提升补的位数是由第一位符号位决定的00000000000000000000000000000011,但是a是一个char类型的数据这个时候就会 产生数据的截断,数据的截断是取低位的数值那么就是00000011,那么b的在内存中存贮的就是00000000000000000000000001111111,那么b也是一个char类型的同样会产生数据的截断最后得到的值就是01111111。a+b的时候又会进行整形的提升那么就是00000000000000000000000000000011+00000000000000000000000001111111。做最后得到的结果就是00000000000000000000000010000010,但是c又是一个char类型又会进行数据的截断最后拿到的值就是10000010。最后打印的时候是以十进制的方式进行打印,那么此时又要进行整形的提升符号位为1那么提升之后的值就是11111111111111111111111110000010此时在内存的存在就是补码。我们知道负数的补码是反码加一得到的,那么退回去就是减一在进行取反最后得到的结果就是100000000000000000000000011111101,所以最后的值就是-126。

3:总结

整形提升就是在我们计算的过程中发现表达式里面有一些 *** 作数他的大小是达不到一个整形大小的时候就会进行整形的提升

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/740998.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-04-28
下一篇2022-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存