关于位运算的一点进阶方法和记忆方法


前言

是不是对位运算感到头痛呢?特别是寄存器会时常用到它,进行位运算。那么本文会告诉你一些记忆方法和应用

1.| 或

口诀:同1或,结果为1,同0或,结果为原始值。
| 看起来像不像1呢?
看起来像1,就遇到1变成1,那么就知道遇到0,为原始值了。

2.& 与 且

口诀:同0与,结果为0,同1或,结果为原始值。
&看起来像不像0呢?
看起来像0,就遇到0变成0,那么就知道遇到1,为原始值了。

还有一种解释方法:做乘法 而且&是不是类似*符号呢
在这里插入图片描述

3.异或 ^

口诀:同1异或,结果取反,同异或,结果为原始值
还有一种解释为:不进位加法
在这里插入图片描述

4.<< >>

在这里插入图片描述

5.应用

第几位:
在这里插入图片描述

5.1 让a中第n位值为1

a | =(1<<n)

记忆方法: | 像1,可以任意数据变成1
原理就不分析了,有时间在做补充

5.2 让a中第n位值为0

a & =~ (1<<n)
记忆方法:&像0,可以让任意数据变成0
在0的一端取反值不变。
原理就不分析了,有时间在做补充

5.3 让a中第n位值取反

a ^ =~ (1<<n)

记忆方法:^像~,可以让任意数据变成取反
二个取反 ^ ~ 结果不变
原理就不分析了,有时间在做补充

5.4 读a中第n位的值

a &1<< (n-1)

在这里插入图片描述

5.5 去掉a中最后的一个1。

a&(a-1

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值