c++的位运算总结

最近在刷位运算的题目,经常用的位运算还比较熟悉,但对于左移、右移运算符和其应用实践有待学习。这里统一总结一下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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值