位运算的性能高,常用的位运算符
& 、 | 、 ^ 、~ 、 << 、 >> 、 >>>
-
&
按位与 如果两个相应的二进制都为1,则该位的结果只为1,否则为0
2进制 | |
---|---|
value | 1101 1110 |
& | 1111 1111 |
1101 1110 |
-
|
按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1
2进制 | |
---|---|
value | 1101 1110 |
| | 1111 1000 |
1111 1110 |
-
^
按位异或 若参加运算的两个二进制位值相同则为0,否则为1
2进制 | |
---|---|
value | 1101 1110 |
^ | 1111 1000 |
0010 0110 |
-
~
取反 ~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0.
2进制 | |
---|---|
value | 1101 1101 |
~ |
0010 0010 |
-
<<
左移 用来将一个数的各二进制位全部左移N位,右补0
2进制 | |
---|---|
value | 1101 1101 |
<< 4 | 1101 1101 0000 |
-
>>
右移 将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0
2进制 | |
---|---|
value | 0101 1101 |
>> 4 | 0000 0101 |
-
>>>
无符号右移,也叫逻辑右移。即若该数为正数(相当于value >>
),则高位补0。而若该数为负数,则右移后高位同样补0
网友评论