《编写高质量代码:改善c程序代码的125个建议》——建议14-2:在右移中合理地选择0或符号位来填充空出的位...

本节书摘来自华章计算机《编写高质量代码:改善c程序代码的125个建议》一书中的第2章,建议14-2,作者:马 伟 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

建议14-2:在右移中合理地选择0或符号位来填充空出的位

在右移运算中,空出的位用0还是符号位进行填充呢?
其实答案由具体的C语言编译器实现来决定。在通常情况下,如果要进行移位的操作数是无符号类型的,那么空出的位将用0进行填充;如果要进行移位的操作数是有符号类型的,则C语言编译器实现既可选择0来进行填充,也可选择符号位进行填充。
因此,如果很关心一个右移运算中的空位,那么可以使用unsigned修饰符来声明变量,这样空位都会被设置为0。同时,如果一个程序采用了有符号数的右移位操作,那么它就是不可移植的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值