Java 中的移位运算符主要有三种:左移运算符(<<)、带符号右移运算符(>>)和无符号右移运算符(>>>)。
以下是这些运算符的用法详解:
1、左移运算符(<<)
左移运算符将操作数的二进制表示向左移动指定的位数,右侧用 0 补充。它的基本语法是:
result = value << numBits;
其中,value
是要进行左移操作的整数,numBits
是要移动的位数。
例如:
int a = 5; // 二进制表示为 0000 0101
int b = a << 2; // 左移 2 位,得到 0001 0100,即十进制的 20
2、带符号右移运算符(>>)
带符号右移运算符将操作数的二进制表示向右移动指定的位数,对于正数,左侧用 0 补充;对于负数,左侧用 1 补充。它的基本语法是:
result = value >> numBits;
其中,value
是要进行右移操作的整数,numBits
是要移动的位数。
例如:
int a = 20; // 二进制表示为 0001 0100
int b = a >> 2; // 右移 2 位,得到 0000 0101,即十进制的 5
3、无符号右移运算符(>>>)
无符号右移运算符将操作数的二进制表示向右移动指定的位数,左侧用 0 补充,不考虑符号位。它的基本语法是:
result = value >>> numBits;
其中,value
是要进行无符号右移操作的整数,numBits
是要移动的位数。
例如:
int a = -20; // 二进制表示为 1110 1100
int b = a >>> 2; // 无符号右移 2 位,得到 0011 1011,即十进制的 59
请注意,Java 中的移位运算符只适用于整数类型(如 int
和 long
)。
在使用移位运算符时,需要确保移位的位数不超过操作数类型的位数(例如,int
类型为 32 位,long
类型为 64 位)。
© 版权声明
本站文章由不念博客原创,未经允许严禁转载!
THE END