多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 一.位运算符 + 操作数需要为 **整型** | 结合性 | 目数 | 运算符 | 功能 | 用法 | 可重载 | | ------ | ---- | ------ | ------ | ---------------- | ------ | | 右 | 单目 | ~ | 位求反 | ~expr1| √ | | 左 | 双目 | << | 左移位 | expr1 << expr2 | √ | | 左 | 双目 | >> | 右移位 | expr1 >> expr2 | √ | | 左 | 双目 | & | 按位与 | expr1 & expr2 | √ | | 左 | 双目 | \| | 按位或 | expr1 \| expr2 | √ | | 左 | 双目 | ^ | 按位异或 | expr1 ^ expr2 | √ | 1. **左移位运算符** 向数字二进制位右边插入0并丢掉溢出位 + **应用** `x<<n` 相当于 `x` 乘以 `2的n次方` 例如: ```c++ 2<<2 ``` 部分位的变化: | 前 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | | 后 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 结果:8 2. **右移位运算符** 向数字二进制位左边插入0(或符号位)并丢掉溢出位 + **应用** `x>>n` 相当于 `x` 除以 `2的n次方` 例如: ```c++ 8>>2 ``` 部分位的变化: | 前 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | | 后 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 结果:2 3. **位取反运算符** 将运算对象的每一位求反。 + **应用** 加密处理 例如: ```c++ ~8 ``` 部分位的变化: | 前 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | | 后 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 4. **按位与运算符** 每一位按照下列规则计算 |操作数|1|0| | ---- | ---- | ---- | |0|0|0| |1|1|0| 5. **按位或运算符** 每一位按照下列规则计算 |操作数|1|0| | ---- | ---- | ---- | |0|1|0| |1|1|1| 6. **按位异或运算符** 每一位按照下列规则计算 |操作数|1|0| | ---- | ---- | ---- | |0|1|0| |1|0|1| > **按位异或的基本规律** > 1. 一个数与自身异或为0 > 2. 一个数与0异或为自身