当前位置:首页 > 科技  > 软件

聊一聊C++中的位操作符

来源: 责编: 时间:2023-10-13 14:36:21 379观看
导读一、概述C++中,位操作符是一种对二进制位进行操作的运算符,用于对二进制数进行位移、与、或、异或等操作。在C++中,有6个位操作符,包括左移运算符(<<)、右移运算符(>>)、按位与运算符(&)、按位或运算符(|)、按位异或运算符(^)和按位

一、概述

C++中,位操作符是一种对二进制位进行操作的运算符,用于对二进制数进行位移、与、或、异或等操作。在C++中,有6个位操作符,包括左移运算符(<<)、右移运算符(>>)、按位与运算符(&)、按位或运算符(|)、按位异或运算符(^)和按位取反运算符(~)。这些运算符可以用于整数类型的变量,例如int、char、short、long等。r5B28资讯网——每日最新资讯28at.com

r5B28资讯网——每日最新资讯28at.com

二、左移和右移运算符

左移运算符(<<)将一个数的二进制位向左移动指定的位数,右边用0填充。例如,将二进制数1010左移2位后,变为101000。右移运算符(>>)将一个数的二进制位向右移动指定的位数,左边用0填充。例如,将二进制数1010右移2位后,变为10。r5B28资讯网——每日最新资讯28at.com

示例代码:r5B28资讯网——每日最新资讯28at.com

#include <iostream>  using namespace std;    int main() {     int num1 = 10;  // binary: 1010     int num2 = num1 << 2;  // left shift 2 bits, binary: 101000     int num3 = num1 >> 2;  // right shift 2 bits, binary: 10     cout << "num2: " << num2 << endl;     cout << "num3: " << num3 << endl;     return 0;  }

三、按位与运算符

按位与运算符(&)对两个数的二进制位进行与操作,即两个相应的二进制位都为1时,结果为1,否则为0。r5B28资讯网——每日最新资讯28at.com

示例代码:r5B28资讯网——每日最新资讯28at.com

#include <iostream>  using namespace std;    int main() {     int num1 = 10;  // binary: 1010     int num2 = 12;  // binary: 1100     int result = num1 & num2;  // result binary: 1000     cout << "result: " << result << endl;     return 0;  }

四、按位或运算符

按位或运算符(|)对两个数的二进制位进行或操作,即两个相应的二进制位中只要有一个为1时,结果为1,否则为0。r5B28资讯网——每日最新资讯28at.com

示例代码:r5B28资讯网——每日最新资讯28at.com

#include <iostream>  using namespace std;    int main() {     int num1 = 10;  // binary: 1010     int num2 = 12;  // binary: 1100     int result = num1 | num2;  // result binary: 1110     cout << "result: " << result << endl;     return 0;  }

五、按位异或运算符

按位异或运算符(^)对两个数的二进制位进行异或操作,即两个相应的二进制位有一个为1且另一个为0时,结果为1,否则为0。r5B28资讯网——每日最新资讯28at.com

示例代码:r5B28资讯网——每日最新资讯28at.com

#include <iostream>  using namespace std;    int main() {     int num1 = 10;  // binary: 1010     int num2 = 12;  // binary: 1100     int result = num1 ^ num2;  // result binary: 11010     cout << "result: " << result << endl;     return 0;  }

六、按位取反运算符

按位取反运算符(~)对一个数的二进制位进行取反操作,即把每个二进制位上的1变为0,0变为1。r5B28资讯网——每日最新资讯28at.com

示例代码:r5B28资讯网——每日最新资讯28at.com

#include <iostream>  using namespace std;    int main() {     int num1 = 10;  // binary: 1010     int result = ~num1;  // result binary: 0101     cout << "result: " << result << endl;     return 0;  }

七、位操作符的优先级和结合性

在C++中,位操作符的优先级比较低,低于加减乘除等算术运算符,但高于赋值运算符。位操作符的结合性是从左到右,即先对左边的操作数进行操作,再对右边的操作数进行操作。r5B28资讯网——每日最新资讯28at.com

示例代码:r5B28资讯网——每日最新资讯28at.com

#include <iostream>  using namespace std;    int main() {     int num1 = 10;  // binary: 1010     int num2 = 12;  // binary: 1100     int result = (num1 & num2) | (num1 ^ num2);  // result binary: 11110     cout << "result: " << result << endl;     return 0;  }

本文链接:http://www.28at.com/showinfo-26-13272-0.html聊一聊C++中的位操作符

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Java抛出异常后,后续代码是否继续执行?

下一篇: Spring Cloud微服务架构:构建弹性和可伸缩的云原生应用

标签:
  • 热门焦点
  • 6月安卓手机性价比榜:Note 12 Turbo断层式碾压

    6月份有一个618,虽然这是京东周年庆的日子,但别的电商也都不约而同的跟进了,反正促销没坏处,厂商和用户都能满意。618期间一些产品也出现了历史低价,那么各个价位段的产品性价比
  • 28个SpringBoot项目中常用注解,日常开发、求职面试不再懵圈

    前言在使用SpringBoot开发中或者在求职面试中都会使用到很多注解或者问到注解相关的知识。本文主要对一些常用的注解进行了总结,同时也会举出具体例子,供大家学习和参考。注解
  • Rust中的高吞吐量流处理

    作者 | Noz编译 | 王瑞平本篇文章主要介绍了Rust中流处理的概念、方法和优化。作者不仅介绍了流处理的基本概念以及Rust中常用的流处理库,还使用这些库实现了一个流处理程序
  • 2023 年的 Node.js 生态系统

    随着技术的不断演进和创新,Node.js 在 2023 年达到了一个新的高度。Node.js 拥有一个庞大的生态系统,可以帮助开发人员更快地实现复杂的应用。本文就来看看 Node.js 最新的生
  • 分享六款相见恨晚的PPT模版网站, 祝你做出精美的PPT!

    1、OfficePLUSOfficePLUS网站旨在为全球Office用户提供丰富的高品质原创PPT模板、实用文档、数据图表及个性化定制服务。优点:OfficePLUS是微软官方网站,囊括PPT模板、Word模
  • Flowable工作流引擎的科普与实践

    一.引言当我们在日常工作和业务中需要进行各种审批流程时,可能会面临一系列技术和业务上的挑战。手动处理这些审批流程可能会导致开发成本的增加以及业务复杂度的上升。在这
  • Python异步IO编程的进程/线程通信实现

    这篇文章再讲3种方式,同时讲4中进程间通信的方式一、 Python 中线程间通信的实现方式共享变量共享变量是多个线程可以共同访问的变量。在Python中,可以使用threading模块中的L
  • 国行版三星Galaxy Z Fold5/Z Flip5发布 售价7499元起

    2023年8月3日,三星电子举行Galaxy新品中国发布会,正式在国内推出了新一代折叠屏智能手机三星Galaxy Z Fold5与Galaxy Z Flip5,以及三星Galaxy Tab S9
  • AI芯片初创公司Tenstorrent获三星和现代1亿美元投资

    Tenstorrent是一家由芯片行业资深人士Jim Keller领导的加拿大初创公司,专注于开发人工智能芯片,该公司周三表示,已经从现代汽车集团和三星投资基金等
Top