Java中的位運算符有多種,包括左移和右移。位運算符可以對二進制位進行操作,實現一些高效的位操作。其中左移運算符<<將二進制數的所有位向左移動n位,右側填充0。例如:
int a = 5; // 二進制表示為0000 0101 int b = a<< 2; // 左移2位,結果為0001 0100,即20
左移運算符可以用來表示乘以2的n次方,比如a<<1等價于a*2,a<<2等價于a*4。但需要注意的是,左移運算符不能用來表示除以2的n次方,因為向左移動可能會導致位溢出,將導致錯誤的結果。
下面看一下Java中的右移運算符>>,將二進制數的所有位向右移動n位,左側填充符號位的值。如果原符號為正,則右移后還是正數;如果原符號為負,則右移后還是負數。例如:
int a = -5; // 二進制表示為1111 1011 int b = a >>2; // 右移2位,結果為1111 1110,即-2
右移運算符可以用來表示除以2的n次方,比如a>>1等價于a/2,a>>2等價于a/4。