按位运算符解释

时间:2015-11-29 11:26:17

标签: c++ operators bitmask

如果我们有位掩码 - > “00101101” 变量i = 4

如果我们这样做(1<< i)|位掩码那么位掩码会发生什么?

谢谢。

3 个答案:

答案 0 :(得分:4)

你的问题是:

  

如果我们这样做(1<< i)|那么位掩码会发生什么?

嗯,bitmask涉及一个声明,其副作用不会影响bitmask本身。

因此,bitmask没有任何反应,它确实存在00101101

答案 1 :(得分:0)

所以你有:

unsigned int i = 4;

你做了:

1 << i;

这会使1超过4个二进制位,然后执行:

i | bitmask;

这在逻辑上返回unsigned int,其中第4位设置加上1中的所有bitmask位(保持不变)设置。

答案 2 :(得分:0)

i = 4,1 <&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; 4&lt; 4 reults 10000 ====&gt; 16