当前位置: 首页 > 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;
}

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

http://www.dtcms.com/a/75811.html

相关文章:

  • 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 使用
  • 使用 GitHub 可重用工作流和 GitHub Actions 简化 DevOps
  • Flink SQL 技术原理详解
  • [cg][UE] Mali Streamline抓帧
  • 基于 MATLAB GUI 环境下的语音分析处理平台的设计与实现示例
  • 离开页面取消请求
  • Scikit-learn 完整学习路线(6-8周)
  • TDE透明加密:重塑文件传输与网盘存储的安全新范式
  • 【服务器】RAID0、RAID1、RAID5、RAID6、RAID10异同与应用
  • 如何提升AI模型正确率
  • 2025年3月19日 十二生肖 今日运势