位运算

位运算操作符有~、^、&、|这几种

1.~

这个表示按位取反,比如8的二进制为1000.

~8就变成了0111,即二进制的0变1,1变0。

 

2.^

这个符号表示按位异或,比如1^0=1,0^1=1,但是1^1=0^0=0;

然后可以通过异或运算符达到值交换的效果。

比如说要交换a和b的值,只需要

a=a^b;
b=a^b;
a=a^b;

然后就可以达到将ab值交换的目的。

 

3.&

该符号表示按位与,将ab相同的变1,不相同就为0,但是0和0还是为0;

通过&操作符我们可以达到快速判断一个数是否是2的n次方。

 1 #include<iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int n;
 6     while(cin>>n)
 7     {
 8         cout<<(n&(n-1))<<endl;
 9     }
10     return 0;
11 }

 

4.|

这个操作符就表示按位或,0|1=1|0=1|1=1,0|0=0;

 

5.>>

该操作符表示将一个数的二进制右移多少位,

比如说4>>1=2,

8>>3=1;

 

6.<<

这个操作符和刚才那个刚好相反,为左移操作符。

比如2<<1=4;

4<<2=16

转载于:https://www.cnblogs.com/Iwpml-595/p/10690524.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值