位运算

运算符

输出的时候:
cout<<(a运算符b)<<endl;

其中的或的符号是 |

&按位与。 当左右操作数相应的二进制都是1,结果的相应位才被置换为1
按位或。当左右操作相应的二进制为其中有一个是1,结果的相应位是1
^按位异或。当且仅当左右操作数相应的二进制位其中有一个是1,相对应才被置换成1
<<左移。将左操作数按位向左移动,移动后腾空的位数补0.移动的位数由右操作数指定
>>右移。将左操作数按位向右移动,最高位不变,其余腾空的位数补0.移动的位数由右操作数指定
~按位取反。将操作数中所有的1变0,0变1
&=按位与赋值
或=按位或赋值
^=按位异或赋值
<<=按位左移赋值
>>=按位右移赋值

&

找上下两个不同的就可以,只要两个一样并且都是1,则最后结果是1
例子:
0010011&0011011
0010011
这样书写可以更加直观的看出来
0011011
结果:
0010011

|

例子:
0010011|0011011
0010011
0011011
结果:
0011011

^

例子:
0010011^0011011
0010011
0011011
结果:
0001000

<<

例子:
0010011<<2
结果:
1001100

例子:
0010011<<4
结果:
10110000

进行运算左移的时候,不会移动符号位所以
cout<<(-10<<2)<<endl;
-40

~

例子:
0010011
结果:
1101100

位运算的符合运算

a&=b //等价于a=a&b
a|=b //等价于a=a|b
a ^ =b //等价于a=a^ b
a << =b //等价于a=a<< b
a >>=b //等价于a=a>>b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值