Arduino - 代码是什么意思?

Arduino - what does the code mean?

我只是一名使用 Arduino 的学生,我想知道下面的代码是什么意思。我已经引用了它和所有内容。谢谢

void RGB(unsigned long valor) {
   r = valor >> 16; 
   g = (valor >> 8) & 0xFF; 
   b = valor & 0xFF; 
}
  • >> - 右移运算符的符号是>>。对于它的操作,它需要两个操作数。它将其左操作数中的每一位向右移动。运算符后面的数字决定了移位的位数(即右操作数)。因此,通过执行 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 对二进制形式的数字的每个位置的位进行逻辑与(如上面的 table 所示)。这是输入和输出组合的字符:

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

    例如:

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