📜  Java中的移位运算符

📅  最后修改于: 2022-05-13 01:55:44.326000             🧑  作者: Mango

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

4. Java中的无符号左移运算符

与无符号右移不同, Java中没有“<<<”运算符,因为逻辑(<<)和算术左移(<<<)操作是相同的。