Arduino - 位運算子



假設變數 A 儲存 60,變數 B 儲存 13,則 -

運算子名稱 運算子簡寫 描述 示例
與(and) & 二進位制 AND 運算子將位複製到結果中,如果該位在兩個運算元中都存在。 (A & B) 將得到 12,即 0000 1100
或(or) | 二進位制 OR 運算子將複製一個位,如果它存在於任一運算元中。 (A | B) 將得到 61,即 0011 1101
異或(xor) ^ 二進位制 XOR 運算子將複製一個位,如果它在一個運算元中設定,但在另一個運算元中沒有設定。 (A ^ B) 將得到 49,即 0011 0001
非(not) ~ 二進位制一補碼運算子是單目運算子,具有“翻轉”位的效果。 (~A ) 將得到 -60,即 1100 0011
左移 << 二進位制左移運算子。左運算元的值向左移動由右運算元指定的位數。 A << 2 將得到 240,即 1111 0000
右移 >> 二進位制右移運算子。左運算元的值向右移動由右運算元指定的位數。 A >> 2 將得到 15,即 0000 1111

示例

void loop () {
   int a = 10,b = 20
   int c = 0;
   c = a & b ;
   c = a | b ;
   c = a ^ b ;
   c = a ~ b ;
   c = a << b ;
   c = a >> b ; 
}

結果

c = 12
c = 61
c = 49
c = -60
c = 240
c = 15
arduino_operators.htm
廣告