注意:逻辑右移和算术右移的区别
C语言标准并没有明确定义对于有符号数使用哪种类型的右移-----算术右移或者逻辑右移都可以。这就意味着任何假设一种或者另一种右移形式的代码都可能会遇到可移植性问题。然而,实际上,几乎所有的编译器和机器组合都对有符号数使用算术右移,且许多程序员也都假设机器会使用这种右移。另一方面,对于无符号数,右移必须是逻辑的。
注意:逻辑右移和算术右移的区别
C语言标准并没有明确定义对于有符号数使用哪种类型的右移-----算术右移或者逻辑右移都可以。这就意味着任何假设一种或者另一种右移形式的代码都可能会遇到可移植性问题。然而,实际上,几乎所有的编译器和机器组合都对有符号数使用算术右移,且许多程序员也都假设机器会使用这种右移。另一方面,对于无符号数,右移必须是逻辑的。