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

开发者社区> 华章计算机> 正文

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

简介:
+关注继续查看

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

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

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
10059
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载