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

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

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

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

上一篇:Linux系统小技巧(5):如何列出和排序正在读写的进程?


下一篇:云·企业官网定制——网站建设篇之——阿里云心选商城