按位运算符说明

Bitwise operators explanation

本文关键字:说明 运算符      更新时间:2023-10-16

如果我们有一个位掩码 -> "00101101"和变量 i = 4

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

谢谢。

你的问题是:

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

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

所以,bitmask什么也没发生,过去是,现在仍然是00101101.

所以你有:

unsigned int i = 4;

而你确实:

1 << i;

这会1 4 个二进制位上移位,然后执行以下操作:

i | bitmask;

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

i = 4, 1<<4 向左移动 4 位数字到 1 ====> 10000 =====> 16