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(非) | ~ | 二进制NOT运算符是一元运算符,具有"翻转"位效果。 | (〜A)将得出-60,其为1100 0011 |
shift left(左移) |
<< | 二进制左移运算符。左操作数的值向左移动右操作数指定的位数。 |
A << 2将得出240,即1111 0000 |
shift right(右移) |
>> | 二进制右移运算符。左操作数的值向右移动右操作数指定的位数。 | 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