- ~取反,0取反是1,1取反是0
- <<是左移,比如1<<3,表示1往左移3位,即乘2的3次方
- >>右移,类似左移,数值大小除以2的n次方,例如:如6>>1就是把00000110右移一位变为00000011,结果是3
- &按位与,1与任意数等于任意数本身,0与任意数等于0,即1&x=x,0&x=0
- |按位或,x|y中只要有一个1则结果为1
- ^按位异或,x^y相等则为0,不等则为1
所有数值必须转换为二进制数才能位运算,每一位数相对应运算
位操作优先级比加减低!!!
用途:
- 二进制取位操作: 例如一个数 & 1 的结果就是取二进制的最末位。
- 判断奇偶: x&1==0为偶,x&1==1为奇。
//取二进制的最末位
#include<iostream>
using namespace std;
int main()
{
int a=6;
a=a&1;//二进制取末位
cout<<a;
}
//判断奇偶
#include<iostream>
using namespace std;
int main()
{
int a=6;
a=a&1;
if(a==0) cout<<"偶"<<endl;
else if(a==1)cout<<"奇"<<endl;
}