Menu
CoddyTech

右移和左移运算符

Coddy 位运算 课程的第 7 课,共 17 课。

移位运算符用于向左或向右移动位。 

右移运算符( >> )

它接受两个操作数。第一个值是要向右移动其位的数,第二个操作数是要移动的位置数。基本上,我们从数的 MSB 端推入零,将位移入二进制数中。

右移用 '>>' 表示。 

右移相当于将数除以 2 的某次幂。我们通过一个示例来理解。

我们取 (11)10 并将它向右移动 3 次,得到的输出是 (1)10 。我们也可以计算 (11 / 23) 的向下取整,结果就是 (1)10。  

用法:

int a = 11;
a>>3;
OUTPUT: 1

这里,a 是要移动其位的数,3 是该数向右移动的位置数。

左移运算符( << )

它也接受两个操作数。第一个操作数是要向左移动其位的数,第二个操作数是要移动的位置数。基本上,我们从数的 LSB 端推入零。左移用 '<<' 表示。左移相当于将数乘以 2 的某次幂。我们用同一个例子来理解。

我们取 (11)10 并将它向右移动 3 次,得到的输出是 (88)10 。我们也可以将 (11)10 乘以 23 来计算,结果是 (88)10。这里要注意,在这种情况下,我们不能移除 MSB。左移会增加位数,并从 LSB 端推入零,但不会移除 MSB 位。而右移会从 MSB 端推入零,并直接省略左侧的位。

用法:

int a = 11;
a<<3;
OUTPUT: 88
challenge icon

挑战

简单

使用移位运算符将给定的数字(输入)加倍。

亲手试试

#include <iostream>
#include <vector>
using namespace std;

int Double(int num) {
    // 在这里编写代码
}

位运算中的所有课

自己练习: C++ 在线编译器

检查进制转换: 进制转换器