-7
我会通过示例代码,发现这个操作:位运算| =用C
displayMap[x + (y/8)*LCD_WIDTH]|= 1 (shift by) shift;
其中
byte shift = y % 8;
我明白|
操作数和=
但什么是他们两个人在一起做。
我会通过示例代码,发现这个操作:位运算| =用C
displayMap[x + (y/8)*LCD_WIDTH]|= 1 (shift by) shift;
其中
byte shift = y % 8;
我明白|
操作数和=
但什么是他们两个人在一起做。
|
对它传递的两个操作数执行按位或操作。
例如,
byte b = 0x0A | 0x50;
如果你看一下0x0A
和0x50
底层位,他们分别是0b00001010
和0b01010000
。与OR运算符结合时,b
中的结果为十六进制的0b01011010
或0x5A
。
|=
类似于如0和-=
这样的运算符,因为它将对两个操作数执行按位或运算,然后将结果存储在左侧运算符中。
byte b = 0x0A;
b |= 0x50;
// after this b = 0x5A
他们正是这样做,按位或*和*分配,一气呵成。 –
'| ='是做'OR'操作和赋值的简写。例如,'x | = 3'等价于'x = x | 3'。您也可以以这种方式使用其他运算符('+, - ,*,&'等)。 – yano
在提出这些问题之前,请先阅读一本关于C编程的书。 – i486