Java中的移位运算规则如下:
左移运算符(<<):将操作数的所有位向左移动并用0填充右侧空位。移动的位数由右侧的操作数指定。例如,对于表达式a << b
,将a
的所有位向左移动b
个位置。
右移运算符(>>):将操作数的所有位向右移动。如果操作数是正数,则用0填充左侧空位;如果操作数是负数,则用1填充左侧空位。移动的位数由右侧的操作数指定。例如,对于表达式a >> b
,将a
的所有位向右移动b
个位置。
无符号右移运算符(>>>):将操作数的所有位向右移动。无论操作数是正数还是负数,都用0填充左侧空位。移动的位数由右侧的操作数指定。例如,对于表达式a >>> b
,将a
的所有位向右移动b
个位置。
需要注意的是,移位运算符对于操作数的位数没有限制。如果移动的位数超过了操作数的位数,则结果是未定义的。