当前位置: 首页 > news >正文

C++中的左移(<<)、右移(>>)运算符

在 C++ 中,左移运算符( << )和右移运算符( >> )是位运算符,用于对二进制位进行操作,以下是它们的详细介绍:
1. 左移运算符( << ):左移运算符将一个数的二进制位向左移动指定的位数。移位后,右侧空出的位用 0 填充,左侧超出的位被舍弃。其语法为 a << n ,其中 a 是要进行移位的操作数, n 是移位的位数。左移一位相当于乘以 2,左移 n 位相当于乘以 2 的 n 次方 。例如:
#include <iostream>
using namespace std;

int main() {
    int num = 5;  // 二进制表示为 00000101
    int result = num << 2;  // 左移 2 位,结果为 00010100,即 20
    cout << result << endl;
    return 0;
}
2. 右移运算符( >> ):右移运算符将一个数的二进制位向右移动指定的位数。对于有符号整数,执行算术右移,即如果原来的数是正数,左侧空出的位用 0 填充;如果是负数,左侧空出的位用 1 填充。对于无符号整数,执行逻辑右移,左侧空出的位始终用 0 填充。其语法为 a >> n ,其中 a 是要进行移位的操作数, n 是移位的位数。右移一位相当于除以 2(向下取整),右移 n 位相当于除以 2 的 n 次方 (向下取整)。例如:
#include <iostream>
using namespace std;

int main() {
    int num = 20;  // 二进制表示为 00010100
    int result = num >> 2;  // 右移 2 位,结果为 00000101,即 5
    cout << result << endl;
    return 0;
}

左移和右移运算符在一些位操作数据压缩加密算法以及与硬件相关的编程中非常有用。

相关文章:

  • Java数据类型 Arrays VS ArraysList VS LikedList 解析
  • 从数据洪流到智能洞察:人工智能如何解锁大数据的价值?
  • C++与C的基本不同
  • 2025年最新︱ASPM态势感知平台介绍
  • react-native 踩坑
  • 【LInux进程六】命令行参数和环境变量
  • 外聘教师管理系统基于Spring BootSSM
  • 软考中级-数据库-5.3-Internet基础知识
  • Netty:java高性能网络编程的基石(下)
  • 【sql靶场】第18-22关-htpp头部注入保姆级教程
  • 一文梳理清楚Vsync/Choreographer/SurfaceFlinger/Surface/SurfaceHolder/硬件刷新频率关系
  • VSTO(C#)Excel开发 系列目录 含源码发布
  • ROS合集(二)源码构建 RTAB-Map + EuRoC
  • 【寻找Linux的奥秘】第二章:权限
  • 直线导轨对于加工环境有哪些要求?
  • 金属加工工种
  • 【Spring】第三弹:基于 XML 获取 Bean 对象
  • PSI5接口
  • Linux进程——(4)命令行参数、环境变量
  • linux 安全 xshell 使用
  • 澎湃与七猫联合启动百万奖金征文,赋能非虚构与现实题材创作
  • 特朗普称即将与伊朗达成核协议,外交部:中方愿继续发挥建设性作用
  • 英德宣布开发射程超2000公里导弹,以防务合作加强安全、促进经济
  • 透视社会组织创新实践中的花开岭现象:与乡村发展的融合共进
  • 中国科学院院士、我国航天液体火箭技术专家朱森元逝世
  • 小耳朵等来了春天:公益义诊筛查专家走进安徽安庆