【发布时间】:2017-02-02 21:09:51
【问题描述】:
我正在尝试为一个项目学习一些基本的 C 语言。 在关于二元移位运算符的维基百科文章中:
如果变量 ch 包含位模式 11100101,则 ch >> 1 将产生结果 01110010,而 ch >> 2 将产生 00111001。
为了澄清,如果将二进制运算符的最后一位向右移动(>>1)会丢失吗?它不会像圆形阵列一样旋转到前面,对吗?
【问题讨论】:
-
C(古老的东西) - 你是想侮辱吗? :) 是的,移出的位丢失了。 C中没有圆形旋转
-
是的,正确...
-
Visual Studio 不是最新 C 标准的好选择。
-
所以你问维基百科在这方面是否正确?这样做并非完全不合理,但如果您认为它是正确的,那么它已经回答了您的问题(肯定的,它是正确的)。
-
@Rizzo 最常见和标准定义的选择是
GCC。我不明白你怎么能将 VS 与 C99 和 C11 一起使用,因为它不支持它们。
标签: c bit-manipulation