c++的位运算总结

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

最近在刷位运算的题目,经常用的位运算还比较熟悉,但对于左移、右移运算符和其应用实践有待学习。这里统一总结一下C++的位运算。
学习整理自此链接处

1.总表

运算符 名称 作用
& 按位与 两个操作数同时为1,结果为1
| 按位或 两个操作数只要有一个为1,结果为1
~ 按位非 按位取反,操作数为1,结果为0;操作数为0,结果为1
^ 按位异或 两个操作数相同,结果为0;两个操作数不同,结果为1
<< 左移 右侧空位补0,左移一位相当于将原数扩大两倍
>> 右移 左侧空位补符号位,右移一位相当于将原数缩小两倍

注:以上操作符都是位运算符,是对位进行操作的。如果我们用十进制3&5,则电脑在处理时会将十进制数转换成机器语言(二进制),并且二进制数在内存中一般是8位位一个字节进行存储的。所以结果应该是3和7的二进制按位与后的结果

2.按位与

按位与运算示例 128 64 32 16 8 4 2 1
3 0 0 0 0 0 0 1 1
7 0 0 0 0 0 1 1 1
结果返回十进制数3 0 0 0 0 0 0 1 1

同样,按位或、异或、非,等都可以通过这种方式进行计算。

按位与用途

1.清零
若想对一个存储单元清零,即使其全部二进制位为0,只要找一个二进制数,其中各个位符合一下条件:原来的数中为1的位,新数中相应位为0。然后使二者进行&am

C++教程之位运算 这篇文章主要讲述来C++中的位运算,更多文章可以关注公众号QStack。 阅读详情

相关推荐

Leetcode C++位运算(整型 字符型)详解及其应用 判断奇偶、符号变换、绝对值、相反数、数据交换、高低位互换、幂次判断

一、原码 反码 补码 正数的原码,反码,补码,移码都等于原码 负数的反码=原码反 (符号不变) 负数的补码=反码+1 负数的移码=补码的符号位反 二、位运算原理 对转换成二进制的数字进行每一位上的0、1的运算,: 与(&),或(|),异或(^),左移(<<),右移(>>) 注意在计算机组成原理中移位运算如下(无符号数左右逻辑移都是补充0) 但是计算机中都是用补码进行运算的 有符号数(算术移位): 正数 不管左移右移都是补0(左移末尾补0 右移高位补和符号位 即0) 负

Wjf7496的博客 2178

c++位运算(详解,初学者绝对能看懂)

目录 一 位运算符号 移位运算: 二 常用技巧: 三 运算符号优先级: 四 位运算常用技巧 1 判断奇偶性 2 求a的b次方 3 找处未重复的数 4用O(1)时间检测整数n是否是2的幂次. 5计算在一个 32 位的整数的二进制表示中有多少个 1 6二进制状态压缩 7二进制优化递归 8 一道经典题 一 位运算符号 & 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0 | 按位或 两个相应的二进制位中只要有一个为1...

m0_64183293的博客 2万+

位运算的原理及应用(C++

摘要:位运算是计算机领域中常用的一种操作方式,它直接对二进制数据进行操作,具有高效、灵活等优点。本文将介绍位运算的基本原理和常见的应用场景,以及在C++语言中如何使用位运算操作。通过学习位运算的相关知识,我们能够更好地理解计算机底层的运算机制,并且能够在实际的程序开发中灵活运用位运算,提高代码执行效率。

tlr123456的博客 1715

C++算法 —— 位运算

本篇章总结了关于位运算的相关经典算法,其中有几道面试常见题,虽然简单,但思路巧妙

学习C++的小陈同学 4377

C++中的位运算

基本知识   最近博主在刷Leedcode题,很多人都是采用位运算来解题的,看的我满脸雾水,所以上网收集了一下c++中关于位运算的知识,为此总结一下,有不妥的地方还望指正。   程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数整数之间也可以进行and运算。举个例子,6的二进制是11...

HachiLin的博客 7437

C++位运算

C++位运算简介、示例和应用,位匀速主要包括与、或、异或、非、左移和右移;在位运算非的介绍中描述了负数的存储方式和补码的概念。

shouhu010的博客 4181

C++位运算

位运算是一种在计算机编程中直接操作二进制位的操作方式。它可以高效地处理数据,并且在某些场景下比普通的算术运算更快。位运算通常用于低级编程、硬件编程、性能优化和加密算法等领域。

qq_36831368的博客 1647

C++位运算

位运算、按位与、按位或、异或、反、左移、右移、补码

weixin_43510208的博客 1564

C++指南】位运算知识详解

C++编程中,位运算是一种直接对二进制位进行操作的运算方式。它不仅可以提高程序的运行效率,还能解决一些特定的算法问题,如“只出现一次的数字”系列题目。 下面将详细介绍C++位运算的相关知识,包括位运算符的使用、规则以及实战使用技巧。

倔强的石头的博客 1824

C++算法学习:位运算

在前面C语言的部分中,我们已经学习并了解了位置运算的相关内容。想详细了解的可以参考以上这篇代码。而接下来我们将就位运算的思想来进行算法练习相关算法代码已经上传至作者的个人gitee中。

2401_89119815的博客 1109

C++中负数的位运算

C++C++中负数的位运算C++负数的位与运算C++负数的位或运算 C++中负数的位运算 C++负数的位与运算 C++中负数的位与运算是先将负数用补码表示,再进行按位与的运算,再将运算的结果从补码表示转化为十进制表示,再输出出来 以下的是一个简单的例子: int main() { // C++中负数的位与运算 int number1 = 3; int number2 ...

GorMing 的博客 5935

C++算法/学习】:位运算详解,看这篇就够了

✨🌏📃:在计算机内部,数是以「二进制(Binary)」的形式来进行存储。位运算就是直接对数的二进制进行计算操作,在程序中使用位运算进行操作,会大大提高程序的性能。:由 0 和 1 两个数码来表示的数。二进制数中每一个 0 或每一个 1 都称为一个「位(Bit)」。1. 位运算的运算符2. 位运算的性质。

island1314的博客 8995

C++位运算补码形式

C++位运算是用的补码 用例说明 在C++中运算93&-8得88;但是用原码来算的话,结果是8; 所以在C++中,位运算是作用在补码上的。 如果都是正数,应该结果一致,因为补码跟原码相同。 -8的原码: 10000000000000000000000000001000 -8的反码:11111111111111111111111111110111 -8的补码:11111111111111111111111111111000 93的原码:00000000000000000000000001011101

weixin_42172720的博客 1070

位运算.cpp

/*位运算*位都有编号,从0开始;*(高低) *位是最小的数据单元,只能保存一个二进制数据(0或1),八个为一个字节,即char型占8位,int型占32位,double占64位,64位机一个指令周期可处理64个位,所以64为指针占8个字节,一个二进制占1位,八进制占三位,十六进制占四位*/# include using namespace std;int main(){ union A { in

东哥的博客 606

c++常见位运算

位运算在算法竞赛中非常常见,因为它们可以高效地处理二进制数据,常用于状态压缩、优化计算、快速判断等场景。

2301_80045122的博客 1210

C++ 位运算总结

位运算的运算对象只能是整型或者字符型数据。 C++位运算符: 按位与: & 按位或: | 按位异或: ^ 按位反: ~ C++中的移位运算: 移位运算是指将二进制信息串作为整体移动。 左移运算符: 低位补0,高位被移出来的位抛弃,左移1位在左移没有丢失高位信息的情况下相当于乘以2. 右移运算符: 与左移相反,对于小整数,每右移1位,相当于除以2。在右移时,需要注意符号位问题。对无符号数据,右移时,左端空出的位用0补充。对于带符号的数据,如果移位前符号位为0(正数),则左端也是用0补充;如

llfjcmx的博客 816

C++算法】位运算

位运算

dab112的博客 1656
上一篇: C++之memset函数
下一篇: C++ bitset用法一文通
HFGD2019
博客等级 码龄7年 6粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值