位左移(<<),位右移(>>)

说明

Arduino编程有两个移位运算符:左移运算符(<<)和右移运算符(>>)。这些运算符将使运算数向左或向右移动指定的位数。

语法

[c gutter=”0″]
variable << number_of_bits
variable >> number_of_bits
[/c]

参数

variable – 运算数
number_of_bits - 指定的位移数

示例

[c gutter=”0″]
int a = 5; // 二进制: 0000000000000101
int b = a << 3; // 二进制: 0000000000101000, b是a左移三位后的结果
int c = b >> 3; // 二进制: 0000000000000101, c是b右移三位后的结果
[/c]

注意

当把x左移y位(x << y),x中最左边的y位将会丢失。如以下程序所示

[c gutter=”0″]
int a = 5; // binary: 0000000000000101
int b = a << 14; // binary: 0100000000000000 – 101 中的第一个 1 被丢弃了
[/c]