按位运算符说明
Bitwise operators explanation
如果我们有一个位掩码 -> "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
相关文章:
- 为什么比较运算符如此快速
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 使用C++中的模板和运算符重载执行矩阵运算
- 为什么这个运算符<重载函数对 STL 算法不可见?
- 增量运算符与后缀混淆
- 一个关于在C++中重载布尔运算符的问题
- 运算符C++ "delete []"仅删除 2 个前值
- 模板类无法识别友元运算符
- 我可以使用条件运算符初始化C风格的字符串文字吗
- 运算符重载说明
- 分配运算符实现的说明
- if 语句中运算符优先级的说明
- C++中>>运算符的说明
- 按位运算符说明
- 分数类增量运算符重载说明
- 运算符重载语法说明
- &-运算符/C++,说明
- 关于智能指针运算符*和运算符>重载的说明
- C++运算符重载说明
- C++ 标准没有说明枚举类的运算符!=()和运算符==()