Arduino 中的按位右/左移位数字


如果您是固件开发人员,那么将数字或寄存器按一定位数进行移位可能非常常见。在 Arduino 中,也可以使用与 C 语言中相同的位移运算符,即 << 用于 **左移** 和 >> 用于 **右移**。

语法

x >> n or x << n

其中 x 是要进行位移的数字,n 是要将数字右移或左移的位数。

输出是什么?您将获得通过将数字的二进制表示形式向左或向右移动那么多位而获得的数字。例如,数字 5 表示为 0b00000101。

如果我将 5 右移 1 位,我将得到 0b00000010,其中最后一个 1 因右移而弹出。因此,结果数字为 2。

同样,如果我将 5 左移 2 位,我将得到 0b00010100,其中由于左移,在末尾添加了两个 0。因此,我们得到 20。

示例

void setup() {
   // put your setup code here, to run once:
   Serial.begin(9600);
   Serial.println();

   int x = 5;

   Serial.println(x);
   Serial.println(x >> 1);
   Serial.println(x << 2);
}

void loop() {
   // put your main code here, to run repeatedly:
}

输出

串行监视器输出如下所示:

如您所见,打印的输出完全符合我们的预期。

更新于: 2021 年 5 月 31 日

2K+ 次查看

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告