LQB01位操作说明

注意,一个字节共8位,低位是Bit0,在最右边,高位是Bit7,,在最左边
在这里插入图片描述

主要掌握

与0,与1,或0,或1,异或0,异或1这四个操作的作用;
掌握如何将一个字节的某一位置1,其他位保持不变;或者清0,保持其他位不变,或者取反,保持其他位不变的效果。

(1)与操作:两个都是真,就是真,否则有一个假,就是假。

假如C=A与B,用符号表示是C=A&B,一个&符号。
若A=1,B=1,则C=1;如果A或者B其中一个是0,那么C=0。
结论:与操作是,两个都是真,结果是真,否则有一个假的,结果就是假的。

C=X &A ;
若A=0: C=X&0,则不管X是1还是0,由于已经有一个是0,所以结论必然是C=0;
若A=1: C=X&1,若X=1,则C=1,若X=0,则C=0;结论C和X一致。
综上,如果让某个数变为0,那么让他与0就可以。

使用:
若char num=0x32=0b 0011 0010,让bit1的1变为0,其他位保持不变,可以这么操作。
Num =num & 1111 1101=num &0xFD就可以了。可以看到,其他位是和1相与,保持不变,只有bit1位是和0与,强制变为0。

(2)或操作:有一个真就是真,都是假就是假。

假如C=A或B,用符号表示是C=A|B,一个|符号。
若A=0,B=0,则C=0;如果A和B都是0,那么C=0 |0= 0。如果A和B有一个是1,则结论C=1.
结论:或操作,两个都是0,结果是0,否则有一个1,结果就是1。

C=X |A ;
若A=1: C=X|1,则不管X是1还是0,由于已经有一个是1,所以结论必然是C=1;
若A=0: C=X|0,若X=1,则C=1,若X=0,则C=0;结论C和X一致。
综上,如果让某个数变为1,不管之前他是0还是1,那么让他1相或就可以。

使用:
若char num=0x32=0b 0011 0010,让bit2的0变为1,其他位保持不变,可以这么操作。
Num =num | 0000 0100=num |0x04就可以了。可以看到,其他位是和0相或,保持不变,只有bit2位是和1相或,强制变为1。

(3)异或操作:相异为真,相同为假

异或,C=A异或B,符号表示是C=A^B,如果A和B不一样,C就是1,如果A和B一样,C=0;
如果C=A^B。
如果B=1,此时如果A=0,则C=01=1;如果A=1,则C=11,则C=0.结论是C和A相反了。
如果B=0,C=A0;如A=1,则C=1,如A=0,则C=00=0;结论是C和1一样了。
综上,将某位和1异或,则是将该位取反;和0异或,保持该0不变。

使用:
如果unsigned char num=0xAB=1010 1011,如果将bit1取反,则可以这么操作。
Num=num ^ 0000 0010=num^0x02;其他位和0异或,保持不变。

(6)判断某一位是0还是1

根据上述的几种操作,我们要判断某个是0还是1,可以将该位和1相与,因为与1保持该位不变。
举例:
Unsigned char num=0xAB=1010 1011;判断bit1是0还是1,可以这么操作,
X=(num>>1)&0x01,先将数右移n位,右边的被挤掉,左边会补0,放到最右边,然后和0x01相与。左边的所有位和0相与,等于0,右边的和1相与,保持不变,则结论就是我们需要的判断结果,返回给X。
如果判断bit4位,就是x=(num>>4)&0x01

作业:

有一个字节unsigned char num=0xAB;//1010 1011
要求C编程,实现将num的bit0取反,将num的bit4置1,bit5清0,其他位保持不变;
然后,判断num的bit0是0还是1,如果是0,打印bit0=1,否则打印bit0=0;判断num的bit4是0还是1,如果是0,打印bit4=1,否则打印bit4=0;

你理解了吗?
蓝桥杯的单片机开发板中,LED灯,蜂鸣器,继电器,都需要这个操作哦。希望认真掌握这几个操作。

后面,过来看看这篇文章吧。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值