位运算|=在C中
我正在浏览示例代码,发现此操作:位运算|=在C中,c,arduino,bit-manipulation,bitwise-operators,C,Arduino,Bit Manipulation,Bitwise Operators,我正在浏览示例代码,发现此操作: displayMap[x + (y/8)*LCD_WIDTH]|= 1 (shift by) shift; 在哪里 byte shift = y % 8; 我理解|操作数和=但它们两个一起做什么。|对传递的两个操作数执行按位OR运算 比如说, byte b = 0x0A | 0x50; 如果查看0x0A和0x50的底层位,它们分别是0b00001010和0b01010000。与OR运算符组合时,b中的结果为0b01011010,或十六进制的0x5A |=
displayMap[x + (y/8)*LCD_WIDTH]|= 1 (shift by) shift;
在哪里
byte shift = y % 8;
我理解|操作数和=但它们两个一起做什么。|对传递的两个操作数执行按位OR运算
比如说,
byte b = 0x0A | 0x50;
如果查看0x0A和0x50的底层位,它们分别是0b00001010和0b01010000。与OR运算符组合时,b中的结果为0b01011010,或十六进制的0x5A
|=类似于+=和-=等运算符,它将对两个操作数执行按位OR运算,然后将结果存储在左运算符中
byte b = 0x0A;
b |= 0x50;
// after this b = 0x5A
它们一气呵成,按位或和赋值。|=是进行或运算和赋值的简写。例如,x |=3相当于x=x | 3。你也可以以这种方式使用其他操作符+、-、*、&,等等。这是一个教程,所以你甚至可以在那里学习更多的C基础知识。