Arduino - 代码是什么意思?

时间:2018-06-08 08:54:25

标签: arduino arduino-uno bit-shift boolean-logic

我只是一名与Arduino合作的学生,我想知道以下代码的含义。我引用了它和一切。谢谢

void RGB(unsigned long valor) {
   r = valor >> 16; 
   g = (valor >> 8) & 0xFF; 
   b = valor & 0xFF; 
}

1 个答案:

答案 0 :(得分:4)

  • >> - 右移操作符的符号为>> 。对于它的操作,它需要两个操作数。它将左操作数中的每个位向右移位。运算符后面的数字决定了位移位的位数(即右操作数)。因此,通过执行ch >> 3,所有位将向右移动三个位置,依此类推。 例如:

    i = 14; // Bit pattern 00001110
    j = i >> 1; // here we have the bit pattern shifted by 1 thus we get 00000111 = 7 which is 14/2
    
  • & - 按位AND运算符是单个&符号:& 。它只是AND的表示,它对操作数的位而不是操作数的真值进行处理。按位二进制AND以二进制形式对数字的每个位置中的位进行逻辑AND(如上表所示)。这是输入和输出组合的字符:

    +------+-------+---------------+
    |bit a | bit b |a & b (a AND b)|
    +------+-------+---------------+
    |  0   |   0   |       0       |
    |  0   |   1   |       0       |
    |  1   |   0   |       0       |
    |  1   |   1   |       1       |
    +------+-------+---------------+
    

    例如:

      11001000  
    & 10111000 
      -------- 
    = 10001000