概述
1. 左移运算符
- 左移运算符为:
<<
- 将一个运算对象的各二进制位全部左移若干位;
- 左边的二进制位丢弃,右边补0;
- 若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。
2. 右移运算符
- 右移运算符为:
>>
- 将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃;
- 操作数每右移一位,相当于该数除以2;
- 左补0还是补1,得看被移数是正还是负。
3. 总结
number << n;
//number乘以2的n次幂number >> n;
//如果number为非负,则用number除以2的n次幂- 这些移位运算符类似于十进制中移动小数点来乘以或除以10
4. 代码示例
示例1:左移运算符
#include <iostream>
using namespace std;
int main()
{
int value = 1;
//假设value为1,那么 value<<2 为4,但是value本身不变,仍为1
cout << "(value << 2) = " << (value << 2) << endl; //4
cout << "value << 2 后,value = " << value << endl; //1
//使用 <<= 来更改变量的值
value <<= 2;
cout << "value = " << value << endl; //4
return 0;
}
示例2:右移运算符
#include <iostream>
using namespace std;
int main()
{
int value = 8;
//假设value为8,那么 value>>2 为2,但是value本身不变,仍为8
cout << "(value >> 2) = " << (value >> 2) << endl; //2
cout << "value >> 2 后,value = " << value << endl; //8
//使用 >>= 来更改变量的值
value >>= 2;
cout << "value = " << value << endl; //2
return 0;
}
示例3:
#include <iostream>
using namespace std;
int main()
{
long long num1 = 1, num2 = 512;
for (int i = 0; i < 10; i++)
{
cout << (num1 << i) << " "; //1 2 4 8 16 32 64 128 256 512
}
cout << endl;
for (int i = 0; i < 10; i++)
{
cout << (num2 >> i) << " "; //512 256 128 64 32 16 8 4 2 1
}
cout << endl;
return 0;
}
最后
以上就是爱笑鞋垫为你收集整理的C++的移位运算符的全部内容,希望文章能够帮你解决C++的移位运算符所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复