Java中的位运算符有多种,包括左移和右移。位运算符可以对二进制位进行操作,实现一些高效的位操作。其中左移运算符<
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。