我是靠谱客的博主 爱笑鞋垫,最近开发中收集的这篇文章主要介绍C++的移位运算符,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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++的移位运算符所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部