位运算
//按位与
&
a&b
//按位或
|
a|b
//按位异或 相同为0 相异为1
^
a^b
//按位取反
~
~a
//向左移
<<
a<<2 //左移两位
//向右移
>>
a>>2 //右移两位
常用位运算
1.将a的第n位置1
a |= (1<<n)
2.将a的第n位置0
a &= ~(1<<n)
3.判断a的第n为是否为1
bool b = a &(1<<n) //if(b>0)则为1 否则为0
4.翻转a的第n位
a ^= (1<<n)
5.计算a的二进制中一共有几个1
int countOf1(int num)
{
int count = 0;
unsigned int flag = 1;
while(flag)
{
if(num & flag)
{
count++;
}
flag = flag << 1;
}
return count;
}