bit位相关操作-清0、置1

bit位相关操作

置1

单bit操作:
例如对181即1011 0101的bit5进行置1操作:
首先,1u<<5,即0000 0001进行左移5位,得到0010 0000
然后1011 0101 | 0010 0000

结论:要想将某个数的bitN置1,即将1左移N位,然后与此数相或

多bit操作:
先清0,再或
例如将181的bit2~bit4写1,那先把1011 0101 的bit2 ~ bit4清0,即1011 0101 & (0x7<<2),然后再 | (0x7<<2)

清0

单bit操作:
例如对181即1011 0101的bit5进行清0操作:
同样的,1u<<5,即0000 0001进行左移5位,得到0010 0000
然后对1u<<5 取反,即~(1u<<5),得到1101 1111
1011 0101 & 1101 1111

要想将某个数的bitN清0,即将1左移N位之后再全部取反,再与此数相与

多bit位操作:
例如对181的bit2~bit4进行清0:
首先bit2~bit4是3位,7=0x0000 0111,我们将7左移2位,得到0001 1100
然后对(7<<2)取反,即1110 0011
最后1011 0101 & 1110 0011

读取

单bit操作:
例如对181即1011 0101的bit5进行判断,看是否为1:
首先 1u<<5,即0000 0001进行左移5位,得到0010 0000
然后1011 0101 & 0010 0000,若bit5为真,则原数的Bit5为1,否则为假。

多bit操作:
例如对181读取它的bit2~bit4:
181即1011 0101,将其右移2位,得到0010 1101,然后再与上0000 0111

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值