右移和左移运算符
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挑战
简单使用移位运算符将给定的数字(输入)加倍。
亲手试试
#include <iostream>
#include <vector>
using namespace std;
int Double(int num) {
// 在这里编写代码
}位运算中的所有课
自己练习: C++ 在线编译器
检查进制转换: 进制转换器