C++位操作

目录

按位取反

奇数和偶数

安慰异或^

左移<<


按位取反

按位取反也包扣符号位的取反,而且系统存储的是数据的补码,而不是原码。

eg:

5----0 0101   第一个0为符号位 

~5---1 1010 (这个是原码)--->补码:1 0101+1=1 0110

所以最终结果为-6.

正数取反一定是负数,负数取反一定是正数

奇数和偶数

二进制数最低位,即最后一位决定这个二进制对应的十进制是偶数还是奇数

0--偶数

1--奇数

按位异或^

不同为1,相同为0

A:010101

B:100111

C:110010

A^B=C

A^C=B

B^C=A

可以利用^运算实现两个变量值的交换

A=10;

B=20;

C=A^B;

B=C^B;//C^B的结果为A

A=C^A;//C^A的结果为B

对于char型也适用

左移<<

num1<<n

表示把num1左移n位,空出来的用0补,移除的不管,左移之后的数m等于num1乘以2的n次方(m=num1*2^n)

右移同理,只是m是num1除以2的n次方

注意:位操作符只能用于数值型(整形)之间的运算,不能运用于其他数据类型,比如指针,不用于直接的非空于空的运算,只能将指针与NULL比较出1或者0,再进行位运算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值