Java中的移位运算符
Java中的运算符用于对变量和值执行操作。
运算符示例: +、-、*、/、>>、<<。
运算符类型:
- 算术运算符,
- 移位运算符,
- 关系运算符,
- 位运算符,
- 逻辑运算符,
- 三元运算符和
- 赋值运算符。
在本文中,我们将主要关注Java中的移位运算符。
通过将其第一个操作数的位向右或向左移动,移位运算符对数据执行位操作。下面列出了Java编程语言中可用的移位运算符。 shift运算符是一个Java运算符,用于将位模式向右或向左移动。
Java中移位运算符的类型:
Name of operator | Sign | Description |
---|---|---|
Signed Left Shift | << | The left shift operator moves all bits by a given number of bits to the left. |
Signed Right Shift | >> | The right shift operator moves all bits by a given number of bits to the right. |
Unsigned Right Shift | >>> | It is the same as the signed right shift, But the vacant leftmost position is filled with 0 instead of the sign bit. |
1. Java 中的有符号Java运算符
此运算符由符号 << 表示,读作 double 小于。
句法:
left_operand << number
描述:
如果 number=2,则计算 number<<2 的值。
当一个数字的值向左移动两位时,最左边的两位丢失。该数字的值为 2。 0010 是数字 2 的二进制表示。在下面的例子中,解释了进行左移的方法:
在上面的示例中,二进制数 0010(十进制 2)在左移位(十进制 8)后变为 1000。
例子:
Java
// Java program to demonstrate
// the Signed left shift operator
import java.io.*;
class GFG {
public static void main(String[] args)
{
int number = 2;
// 2 bit left shift operation
int Ans = number << 2;
System.out.println(Ans);
}
}
Java
// Java program to demonstrate
// the Signed right shift operator
import java.io.*;
class GFG
{
public static void main (String[] args) {
{
int number = 8;
// 2 bit signed right shift
int Ans = number >> 2;
System.out.println(Ans);
}
}
Java
// Java program to demonstrate
// the Unsigned right shift operator
import java.io.*;
class GFG
{
public static void main (String[] args)
{
byte num1 = 8;
byte num2 = -8;
System.out.println(num1 >>> 2);
System.out.println(num2 >>> 2);
}
}
8
2. Java中的有符号右移运算符
右移运算符将数字的位向右移动给定数量的位置。 >> 符号代表右移运算符,理解为双倍大于。当您键入 x>>n 时,您告诉计算机将位 x 移动到正确的 n 个位置。
当我们向右移动一个数字时,最低有效位(最右边)被删除,而符号位被填充在最重要的位置(最左边)。
句法:
left_operand >> number
描述:
如果 number=8,则计算 number>>2 的值。
当一个数字的值向右移动两位时,最右边的两位丢失。该数字的值为八。 1000 是数字 8 的二进制表示。以下是如何执行右移的示例:
在上面的示例中,二进制数 1000(十进制 8)在右移位(十进制 2)后变为 0010。
例子:
Java
// Java program to demonstrate
// the Signed right shift operator
import java.io.*;
class GFG
{
public static void main (String[] args) {
{
int number = 8;
// 2 bit signed right shift
int Ans = number >> 2;
System.out.println(Ans);
}
}
2
3. Java中的无符号右移运算符
无符号右移运算符将整数的位向右移动给定数量的位置。符号位用 0 填充。按位零填充右移运算符由符号 >>> 表示。
句法:
left_operand >>> number
Java
// Java program to demonstrate
// the Unsigned right shift operator
import java.io.*;
class GFG
{
public static void main (String[] args)
{
byte num1 = 8;
byte num2 = -8;
System.out.println(num1 >>> 2);
System.out.println(num2 >>> 2);
}
}
2
1073741822
Note: For negative bits, the signed and unsigned right shift operators provide different results.
4. Java中的无符号左移运算符
与无符号右移不同, Java中没有“<<<”运算符,因为逻辑(<<)和算术左移(<<<)操作是相同的。