栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于什么是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:总结

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/834990.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号