用&= ~和|=对寄存器进行操作各是什么含义?

A&=~B可以写成A=A&(~B),这个是C语言知识,都很简单。

在嵌入式中,为了避免影响到其他的寄存器位,常用 &=~ 对寄存器进行清零,用| = 对寄存器进行置位。

举例说明:

寄存器A=1011_1001,将寄存器的第4位和第6位进行清零,可以进行下面操作。

A &=~ 0x28=1011_1001 & 1101_0111=1001_0001

A &=~ ((1<<3)|(1<<5))

这样就实现了对寄存器的第4位和第6位进行清零。

用 | = 置位原理相同,这里就不举例说明了。

根本原理还是

一个数与0相与得零,即X&0=0

一个数与1相或得一,即X|1=1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值