位操作均需以二进制方式进行(进制转换烂熟于心的请忽略)
int a=ox0;
按位取反
~a=oxffff;
左移 << 相当于*2(*10(二进制))
x<<i 相当于x*2^i (*10^i(二进制))
右移 >> 相当于/2(/10(二进制))
x>>i 相当于x/2^i (/10^i(二进制))
与操作 &
A&0 ->0
A&1->A
或操作|
A|0->A
A|1->1
异或操作^
0^0=0,1^1=0,0^1=1
通过位操作进行两个数据的交换:a=a^b;b=a^b;a=a^b;