自学内容网 自学内容网

嵌入式杂谈(问题解决二:位运算符在嵌入式编程中的应用)

  • 与(&):两个操作数的对应位都为1时,结果的该位为1,否则为0。

  • 异或(^):两个操作数的对应位不同时,结果的该位为1,否则为0。

  • 取反(~):对操作数的每一位取反,1变0,0变1。

  • 或(|):两个操作数的对应位有一个为1时,结果的该位为1,否则为0。

  • 左移(<<:将二进制位向左移动,右侧补0。

  • 右移(>>:将二进制位向右移动,左侧补0(逻辑右移)或补符号位(算术右移)。

  • &=:按位与后赋值。

  • |=:按位或后赋值。

  • ^=:按位异或后赋值。

  • <<=:左移后赋值。

  • >>=:右移后赋值。

运算符名称功能描述示例
&与(AND)两个操作数的对应位都为1时,结果的该位为1,否则为0。0b1010 & 0b1100 = 0b1000
^异或(XOR)两个操作数的对应位不同时,结果的该位为1,否则为0。0b1010 ^ 0b1100 = 0b0110
~取反(NOT)对操作数的每一位取反,1变0,0变1。~0b1010 = 0b0101(假设8位)
``或(OR)两个操作数的对应位有一个为1时,结果的该位为1,否则为0。`0b10100b1100 = 0b1110`
<<左移(Left Shift)将二进制位向左移动,右侧补0。0b1010 << 2 = 0b101000
>>右移(Right Shift)将二进制位向右移动,左侧补0(逻辑右移)或补符号位(算术右移)。0b1010 >> 2 = 0b0010
&=与后赋值对两个操作数进行按位与运算,并将结果赋值给左操作数。a &= b 等价于 a = a & b
`=`或后赋值对两个操作数进行按位或运算,并将结果赋值给左操作数。`a= b等价于a = ab`
^=异或后赋值对两个操作数进行按位异或运算,并将结果赋值给左操作数。a ^= b 等价于 a = a ^ b
<<=左移后赋值将左操作数的二进制位向左移动,并将结果赋值给左操作数。a <<= 2 等价于 a = a << 2
>>=右移后赋值将左操作数的二进制位向右移动,并将结果赋值给左操作数。a >>= 2 等价于 a = a >> 2

原文地址:https://blog.csdn.net/JK03820/article/details/145170488

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!