📅  最后修改于: 2023-12-03 14:42:58.486000             🧑  作者: Mango
在Java中,移位运算符被用来将数字的二进制位向左或向右移动(或者称为“移位”)。这些运算符在某些情况下非常有用,尤其是在需要进行高效数值操作时。
Java中的移位运算符包括:
示例代码:
int x = 10; // x的二进制表示为 1010
int y = x << 2; // y的二进制表示为 101000(即十进制下的40)
(带符号右移运算符):将一个数的所有二进制位向右移动指定的位数,高位用符号位(即最高位)填充。如果符号位为0,则补0;如果符号位为1,则补1。
示例代码:
int x = -10; // x的二进制表示为 11111111111111111111111111110110(即十进制下的-10)
int y = x >> 2; // y的二进制表示为 11111111111111111111111111111101(即十进制下的-3)
(无符号右移运算符):将一个数的所有二进制位向右移动指定的位数,高位用0填充。无论符号位是什么,都用0填充。
示例代码:
int x = -10; // x的二进制表示为 11111111111111111111111111110110(即十进制下的-10)
int y = x >>> 2; // y的二进制表示为 00111111111111111111111111111101(即十进制下的1073741821)
需要注意的是,移位运算符只能用于整数类型(byte、short、int和long),不能用于浮点数和字符类型。并且,移位操作的位数必须是非负整数。