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

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

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

一、概述

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

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

二、左移和右移运算符

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

示例代码:wOr28资讯网——每日最新资讯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。wOr28资讯网——每日最新资讯28at.com

示例代码:wOr28资讯网——每日最新资讯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。wOr28资讯网——每日最新资讯28at.com

示例代码:wOr28资讯网——每日最新资讯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。wOr28资讯网——每日最新资讯28at.com

示例代码:wOr28资讯网——每日最新资讯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。wOr28资讯网——每日最新资讯28at.com

示例代码:wOr28资讯网——每日最新资讯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++中,位操作符的优先级比较低,低于加减乘除等算术运算符,但高于赋值运算符。位操作符的结合性是从左到右,即先对左边的操作数进行操作,再对右边的操作数进行操作。wOr28资讯网——每日最新资讯28at.com

示例代码:wOr28资讯网——每日最新资讯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-13513-0.html聊一聊C++中的位操作符

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

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

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

标签:
  • 热门焦点
  • 一加Ace2 Pro真机揭晓 钛空灰配色质感拉满

    终于,在经过了几波预热之后,一加Ace2 Pro的外观真机图在网上出现了。还是博主数码闲聊站曝光的,这次的外观设计还是延续了一加11的方案,只是细节上有了调整,例如新加入了钛空灰
  • Mate60手机壳曝光 致敬自己的经典设计

    8月3日消息,今天下午博主数码闲聊站带来了华为Mate60的第三方手机壳图,可以让我们在真机发布之前看看这款华为全新旗舰的大致轮廓。从曝光的图片看,Mate 60背后摄像头面积依然
  • 直屏旗舰来了 iQOO 12和K70 Pro同台竞技

    旗舰机基本上使用的都是双曲面屏幕,这就让很多喜欢直屏的爱好者在苦等一款直屏旗舰,这次,你们等到了。据博主数码闲聊站带来的最新爆料称,Redmi下代旗舰K70 Pro和iQOO 12两款手
  • vivo TWS Air开箱体验:真轻 臻好听

    在vivo S15系列新机的发布会上,vivo的最新款真无线蓝牙耳机vivo TWS Air也一同发布,本次就这款耳机新品给大家带来一个简单的分享。外包装盒上,vivo TWS Air保持了vivo自家产
  • 分布式系统中的CAP理论,面试必问,你理解了嘛?

    对于刚刚接触分布式系统的小伙伴们来说,一提起分布式系统,就感觉高大上,深不可测。而且看了很多书和视频还是一脸懵逼。这篇文章主要使用大白话的方式,带你理解一下分布式系统
  • 量化指标是与非:挽救被量化指标扼杀的技术团队

    作者 | 刘新翠整理 | 徐杰承本文整理自快狗打车技术总监刘新翠在WOT2023大会上的主题分享,更多精彩内容及现场PPT,请关注51CTO技术栈公众号,发消息【WOT2023PPT】即可直接领取
  • 虚拟键盘 API 的妙用

    你是否在遇到过这样的问题:移动设备上有一个固定元素,当激活虚拟键盘时,该元素被隐藏在了键盘下方?多年来,这一直是 Web 上的默认行为,在本文中,我们将探讨这个问题、为什么会发生
  • iQOO Neo8系列新品发布会

    旗舰双芯 更强更Pro
  • OPPO K11样张首曝:千元机影像“卷”得真不错!

    一直以来,OPPO K系列机型都保持着较为均衡的产品体验,历来都是2K价位的明星机型,去年推出的OPPO K10和OPPO K10 Pro两款机型凭借各自的出色配置,堪称有
Top