C/C++位运算符

位运算是指按二进制进行的运算[@more@]

在程序中,常常需要处理二进制位的问题。C/C++语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。
在实际应用中,建议用unsigned整型操作数,因为带符号操作数可能因为不同机器结果不同。

下面是C/C++位操作运算符列表,其中运算符优先级为从上到下递减,但<<,>>优先级相同。

C/C++位操作运算符
操作符功能用法
~位求反~expr
<<左移expr1 << expr2
>>右移expr1 >> expr2
&位与expr1 & expr2
^位异或expr1 ^ expr2
|位或expr1 | expr2

代码示例如下:

1 #include
2 using namespace std;
3 int main(){
4 unsigned short x=3,y=5;
5 cout<<"~x="<<(unsigned short)~x<6 cout<<"~x="<<~x<7 cout<<"x&y="<<(x&y)<8 cout<<"x^y="<<(x^y)<9 cout<<"x|y="<<(x|y)<10 cout<<"x<<1="<<(x<<1)<11 cout<<"y>>1="<<(y>>1)<12 return 0;13 }

运算结果如下:

~x=65532

~x=-4

x&y=1

x^y=6

x|y=7

x<<1=6

y>>1=2

代码解释如下:
short为16位整数,故x,y的二进制表示如下:
x=3(00000000 00000011)
y=5(00000000 00000101)


~ 00000000 00000011
= 11111111 11111100(65532或者-4)(至于为什么同样的二进制位表示的数不一样,这与计算机的数值表示有关,具体原因可搜索“补码”)


00000000 00000011
& 00000000 00000101
= 00000000 00000001(1)


00000000 00000011
^ 00000000 00000101
= 00000000 00000110(6)


00000000 00000011
| 00000000 00000101
= 00000000 00000111(7)


00000000 00000011<<1
= 00000000 00000110(6)


00000000 00000101>>1
= 00000000 00000010(2)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/1253.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java获取文件路径

第一种&#xff1a; File f new File(this.getClass().getResource("/").getPath()); System.out.println(f);结果: C:\Users\xiaob\javasrc\project\request-pro\target\classes 获取当前类的所在工程路径; 如果不加“/” File f new File(this.getClass().getR…

[Android]SharedPreferences可视化管理key-value数据存储

1.定义 PrefsManager 创建一个用于管理 SharedPreferences 的单例工具类&#xff0c;并使用泛型方法来简化对不同类型数据的存取操作&#xff0c;该类提供了泛型的 get 和 set 方法来处理各种数据类型。 import android.content.Context import android.content.SharedPrefer…

C# 下记录(Record)详解

在C# 9.0中&#xff0c;引入了一个新的关键字&#xff1a;record。record关键字用于定义记录类型&#xff0c;这是一种不可变的数据结构&#xff0c;用于表示具有明确字段名称和类型的数据集。本文将详细介绍C#中record类型的使用和特点&#xff0c;以及如何通过记录记录器&…

【云计算】云数据中心网络(六):私网连接

《云网络》系列&#xff0c;共包含以下文章&#xff1a; 云网络是未来的网络基础设施云网络产品体系概述云数据中心网络&#xff08;一&#xff09;&#xff1a;VPC云数据中心网络&#xff08;二&#xff09;&#xff1a;弹性公网 IP云数据中心网络&#xff08;三&#xff09;…

深度学习基础——卷积神经网络的感受野、参数量、计算量

深度学习基础——卷积神经网络的感受野、参数量、计算量 深度学习在图像处理领域取得了巨大的成功&#xff0c;其中卷积神经网络&#xff08;Convolutional Neural Networks&#xff0c;CNN&#xff09;是一种非常重要的网络结构。本文将介绍卷积神经网络的三个重要指标&#…

网络安全产品---扛DDOS产品

DDOS攻击 what 分布式拒绝服务攻击&#xff08;Distributed Denial of Service attack&#xff09; how 攻击者通过控制大量的网络设备&#xff08;傀儡机&#xff09;&#xff0c;向攻击目标&#xff08;例如网站、Web服务器、网络设备等&#xff09;发出海量的、但并不是…

SQLite R*Tree 模块(三十三)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLite FTS3 和 FTS4 扩展(三十二) 下一篇:SQLite轻量级会话扩展&#xff08;三十四&#xff09; 1. 概述 R-Tree 是一个特殊的 专为执行范围查询而设计的索引。R-树最常见的是 用于地理空间系统&#xff0c;其中…

前端三剑客 HTML+CSS+JavaScript ① 基础入门

光永远会照亮你 —— 24.4.18 一、C/S架构和B/S架构 C:Client&#xff08;客户端&#xff09; B:Browser&#xff08;浏览器&#xff09; S:Server&#xff08;服务器&#xff09; C/S 架构&#xff1a; B/S 架构&#xff1a; 大型专业应用、安全性要求较高的应用&#xff0c;还…

binary tree Leetcode 二叉树算法题

144.二叉树的前序遍历 前序遍历是&#xff1a;根-左-右 所以记录序列的的时候放在最前面 递归 class Solution {List<Integer> ans new ArrayList<>();public List<Integer> preorderTraversal(TreeNode root) {if(root null) return ans;ans.add(root…

【HCIP】OSPF的高级特性

OSPF的高级特性1 --- 不规则区域 一、OSPF不规则区域类型 产生原因&#xff1a;区域划分不合理&#xff0c;导致的问题 1、非骨干区域无法和骨干区域保持连通 2、骨干区域被分割 造成后果&#xff1a;非骨干区域没和骨干区域相连&#xff0c;导致ABR将不会帮忙转发区域间的路由…

【数据结构练习题】堆——top-k问题

♥♥♥♥♥个人主页♥♥♥♥♥ ♥♥♥♥♥数据结构练习题总结专栏♥♥♥♥♥ ♥♥♥♥♥上一章&#xff1a;【数据结构练习题】二叉树(1)——1.相同的树2.另一颗树的子树3.翻转二叉树4.平衡二叉树5.对称二叉树♥♥♥♥♥ 文章目录 1.top-k问题1.1问题描述1.2思路分析1.3绘图分析…

理光打印机设置扫描文件到共享文件夹教程(线上和现场)

在线设置。 1.点击用户工具/计数器按钮。 2.点击系统设置。 3.点击端口设置&#xff0c;点击机器IPV4地址。 4.获得打印机IP地址。 5.回到共享电脑&#xff0c;新建一个账户或者使用当前账户&#xff0c;为了隐私安全起见&#xff0c;最好设置密码。 6.关闭防火墙。 7.启用…

Mac 下安装PostgreSQL经验

使用homebrew终端软件管理器去安装PostgreSQL 如果没有安装brew命令执行以下命令 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 沙果开源物联网系统 SagooIoT | SagooIoT 1.使用命令安装postgreSQL brew i…

QC、QA、SQC、SQA

QC 品质控制/质量控制&#xff08;QC即英文Quality Control的简称&#xff0c;中文意义是品质控制&#xff09;其在ISO8402&#xff1a;1994的定义是“为达到品质要求所采取的作业技术和活动”。有些推行ISO9000的组织会设置这样一个部门或岗位&#xff0c;负责ISO9000标准所要…

JavaScript之分时函数、分时间段渲染页面、提高用户体验、参数归一化、高阶函数、分段、appendChild、requestIdleCallback

MENU 前言效果图html原始写法优化方式一(参数归一化)优化方式二(当浏览器不支持requestIdleCallback方法的时候)优化方式三(判断环境) 前言 当前需要向页面插入十万个div元素&#xff0c;如果使用普通的渲染方式&#xff0c;会造成延迟。这时候就需要通过分时函数来实现渲染了。…

JAVAEE初阶之计算机如何工作

1.一台机器如何组成 冯诺依曼体系 CPU 中央处理器: 进行算术运算和逻辑判断.存储器: 分为外存和内存, 用于存储数据(使用二进制方式存储)输入设备: 用户给计算机发号施令的设备.输出设备: 计算机个用户汇报结果的设备. 针对存储空间 硬盘 > 内存 >> CPU针对数据访问…

【Pytorch】VSCode实用技巧 - 默认终端修改为conda activate pytorch

VScode修改配置使得启动终端为conda环境 文章目录 VScode修改配置使得启动终端为conda环境1、找到settings.json 文件2、查找 conda / mamba 相关内容3、编辑 settings.json 文件4、异常处理5、补充检验 VScode跑项目&#xff0c;在启动pytorch项目时往往会有千奇百怪的问题&am…

大学生前端学习第一天:了解前端

引言&#xff1a; 哈喽&#xff0c;各位大学生们&#xff0c;大家好呀&#xff0c;在本篇博客&#xff0c;我们将引入一个新的板块学习&#xff0c;那就是前端&#xff0c;关于前端&#xff0c;GPT是这样描述的&#xff1a;前端通常指的是Web开发中用户界面的部分&#xff0c;…

数据库设计的三范式

简单来说就是&#xff1a;原子性、唯一性、独立性 后一范式都是在前一范式已经满足的情况进行附加的内容 第一范式&#xff08;1NF&#xff09;&#xff1a;原子性 存储的数据应不可再分。 不满足原子性&#xff1a; 满足原子性&#xff1a; 第二范式&#xff08;2NF&#xf…

Flutter 中的 Crypto 库介绍及使用

简介 Crypto 库是 Dart 标准库的一部分&#xff0c;提供了一系列用于加密和哈希的函数。它支持多种算法&#xff0c;包括 SHA-1、SHA-256、MD5 和 AES。Crypto 库可用于各种安全操作&#xff0c;例如&#xff1a; 存储敏感数据的安全哈希值验证数据完整性加密和解密数据 安装…