1.位操作符
包括
& 0&0=0 0&1=0 1&1=1 特定位清零 如11010101 & 11100111 = 11000101
| 0|0=0 1|0=1 1|1=1 特定位置一
~ ~0=1 ~1=0 逻辑取反是!,真变成加、假变成真
^ 1^1=0 0^0=1 1^0=0 特定位取反
<< >> 左移或者右移一位,补零。嵌入式中都是无符号数采用逻辑移位
2.位操作在寄存器中的特殊作用
(1)操控硬件本质就是读写寄存器
(2)寄存器的特点就是按位进行规划和使用,但是寄存器的读写确实整体32位一起进行的
(3)寄存器操作要求就是:在特定位改变时不能影响其他位
(4)读 改 写,先把寄存器整体原来的值,然后在这个基础上修改想要修改的特定位,再将修改后的值整体写入寄存器,进而达到不修改其他位的基础下修改特定位。
3.如何运用位运算构建特定二进制数
(1)寄存器位操作经常需要特定位给特定值
对寄存器定位置1或者清零需先构造一个特定的二进制数。
(2)移位获取特定的为1的二进制数。
比如bit3~bit7为1;0x1f<<3
bit3~bit7为1,同时bit23~bit25为1,其余位为0;((0x1f<<3)|(7<<23))
(3)结合为取反获取特定0的二进制数
bit3~bit7为0,同时bit23~bit25为0,其余位为1;~((0x1f<<3)|(7<<23))
标签:位操作,精通,语言,二进制,取反,特定,寄存器,0x1f From: https://www.cnblogs.com/foorun/p/17628194.html