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
广告