位运算常见的主要有以下,与、或、异或、左移、右移
与运算(&)
使用方法:
&
运算符两侧同时为“1”,结果为“1”,否则均为0;
用途:
1、清零
将一个数与0进行按位与,会得到一个0;
例如:
数字A:0111 0110
数字B:0000 0000
结果C:0000 0000
2、取一个数指定位数
例子:取数字的低四位;
数字A:0111 0110
数字B:0000 1111
结果C:0000 0110
3、判断奇偶性
将数字与“1”做与运算;
例子:A&1==0?“偶数”:“奇数”;
数字A:0111 0110
数字B:0000 0001
结果C:0000 0000
鉴定为:A为偶数
或运算(|)
运算符两侧有一个为“1”就为“1”;
异或运算(^)
相同为“0”,不同为“1”;
用途:
1、交换数字
左移(<<)
将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0);
用途:
1、左移常被用来做 * (2 ^ n)的运算,因为直接基于二进制运算,所以左移效率比 * (2 ^ n)高。
例子:
2^3 = 1<<3;
a=a<<2 和 a*=2结果相同;
右移(>>)
将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃;
用途:
右移常被用来做 / (2 ^ n)的运算,因为直接基于二进制运算,所以右移效率比 / (2 ^ n)高。
例子:
8>>2 = 2 ;
a=a>>2 和 a/=2结果相同;
(tip:后续有想法再补充…)