整 型 提 升

   

  表达式的整形运算在CPU的相应运算器件内执行, CPU内整型运算器的操作数的字节长度一般就是int的字节长度,那么当表达式中存在char与short类型时,可能会进行整形提升,转换为CPU内整型操作数的标准长度。

 

那如何进行整形提升呢?

整形提升是按照变量的数据的符号位来提升的。符号分为正号与负号两类。整形提升也可分为正数的整形提升与负数的整形提升。

 

正数的整形提升:

以char类型变量c来说。char a=1;

变量a的二进制(补码)中只有8个比特位:000000001

整形提升时高位补符号位。

char类型为有符号的char 为正高位补0

 负数的整形提升:

以char类型变量b来说。char b=-1;

变量b的二进制(补码)中只有8个比特

位:111111111 char为有符号的char 高位补符号位1 整形提升后为11111111111111111111111111111111

-1的原码 反码(保留符号位其他取反)

补码(反码+1)

原码1000000000000000000000000000000001

 反码11111111111111111111111111111111110

补码11111111111111111111111111111111111

无符号数高位补0

接下来看例题:

以%d形式打印char类型数

2896a341de3146d585a37eba58cdfaaf.png

 还有下面两种情况存在整形提升。

0aff90917c3a47c8a7e0cd5f915997bd.png

 

表达式+c与表达式-c出现整形提升字节长度转换为标准字节长度sizeof(int)。

2cf2748f98964953a2bea88af4017c42.png

 char类型变量a与short类型变量b发生整形提升,而int类型变量不需要整形提升。所以运行结果会打印出c。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值