c/c++ | 位运算 | 使用场景

90 篇文章 0 订阅
15 篇文章 0 订阅

位运算 ,应该是最朴素的逻辑运算

##############################

#按位与(&)
| A | B | A & B |
|---|---|-------|
| 0 | 0 |   0   |
| 0 | 1 |   0   |
| 1 | 0 |   0   |
| 1 | 1 |   1   |


##################################
```c++
int value = 0b11010110;
int mask = 0b11110000;
int result = value & mask;  // 清除 value 中低四位的值

################################

#亦或运算
#适合,“间隔跳转”,就是“一下子左,一下子右”。“一下子真,一下子假”。“一下子奇,一下子偶”。
| A | B | A XOR B |
|---|---|----------|
| 0 | 0 |    0     |
| 0 | 1 |    1     |
| 1 | 0 |    1     |
| 1 | 1 |    0     |

##########################


bool flag = false;
while(true){
//内部逻辑
flag ^= true;
}

##############################

#左移(<<)

###############################

int value = 5;
int result = value << 2;  // 将 value 左移两位,相当于 value * 4

###############################

#右移(>>)

##################################

int value = 20;
int result = value >> 2;  // 将 value 右移两位,相当于 value / 4


########################################

#按位或(|)
| A | B | A | B |
|---|---|-------|
| 0 | 0 |   0   |
| 0 | 1 |   1   |
| 1 | 0 |   1   |
| 1 | 1 |   1   |

#########################################

int value = 0b11010110;
int mask = 0b00001111;
int result = value | mask;  // 将 value 中低四位设置为1

#####################################

#按位取反
#| A | ~A |
|---|----|
| 0 |  1 |
| 1 |  0 |

########################

int num = 0b11001010;  // 二进制表示
int result = ~num;     // 翻转所有位


###########################

后续还会持续更新,匆匆记录,搭个框架出来先,位运算的场景其实还有很多

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值