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
我只是一名使用 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