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

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:总结

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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部