-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