关于java的位运算(<<、>>、<<<、&、|、^、~)
几个位运算的操作解释:
<< :左(箭头的方向)移,移除的高位舍弃,低位补零 。
>> :右(箭头的方向)移,低位移除的舍弃,高位补进符号位(如果是正数的话补0,负数的话补1 )。
>>>:和上一个一样的右移,只是该操作无论符号位怎样,高位均补零 。
& :将两个数按位进行 且操作 。
| :将两个数按位进行或操作。
^ :将两个数按位做异或运算。
~ :对于操作数每位都取反操作 。
对于位操作,均指该数字的原码进行操作,整数的原码是它本身,负数的原码是其对应整数的原码取反然后+1 。
例如:
15 的原码: 00000000 00000000 00000000 00001111
-15 :
15的原码取反:
11111111 11111111 11111111 11110000
然后+1 :
11111111 11111111 11111111 11110001 .