打赏

位运算

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

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

posted @ 2019-04-11 16:23  Onebelieve  阅读(191)  评论(0编辑  收藏  举报