sem*_*off -2 c bit-manipulation arduino bitwise-operators
我正在查看示例代码并发现此操作:
displayMap[x + (y/8)*LCD_WIDTH]|= 1 (shift by) shift;
Run Code Online (Sandbox Code Playgroud)
在哪里
byte shift = y % 8;
Run Code Online (Sandbox Code Playgroud)
我理解|操作数,=但是它们两个一起做什么。
Gov*_*mar 11
| 对其传递的两个操作数执行按位或运算。
例如,
byte b = 0x0A | 0x50;
Run Code Online (Sandbox Code Playgroud)
如果您查看0x0Aand的底层位0x50,它们分别是0b00001010和0b01010000。与 OR 运算符结合使用时,结果b为0b01011010, 或0x5A十六进制。
|=类似于像运营商+=,并-=在其将执行按位或在两个操作数,然后将结果存储在左边的操作。
byte b = 0x0A;
b |= 0x50;
// after this b = 0x5A
Run Code Online (Sandbox Code Playgroud)