📜  Java中的整数 rotateLeft() 方法

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

Java中的整数 rotateLeft() 方法

位移是一种按位运算,通过将位向左或向右移动一定数量的位来对二进制值的所有位执行。 Java有一个逻辑左移运算符(<< )。当值 0001(即 1)向左移动时,它变为 0010(即 2),再次向左移动时变为 0100 或 4。同样的过程适用于右移操作。
Java.lang.Integer.rotateLeft() 方法用于将整数值的位,以二进制 2 的互补形式表示,向左移动指定位数。 (位向左或更高位移动)。

句法:

public static int rotateLeft(int value, int shifts)

参数:该方法有两个参数:

  • a :这是整数类型,指的是要对其执行操作的值。
  • shifts :这也是整数类型,指的是旋转的距离。

返回值:该方法返回通过将指定的 int 值的二进制补码表示向左旋转指定的移位位数获得的值。
例子:

Input: 12
Output: 24
Explanation:
Consider an integer a = 12 
Binary Representation = 00001100
After 1 left shift it will become=00011000
So that is= 24

下面的程序说明了Java.lang.Integer.rotateLeft() 方法。
程序 1:对于正数。

// Java program to illustrate the
// Java.lang.Integer.rotateLeft() method
import java.lang.*;
  
public class Geeks {
  
    public static void main(String[] args)
    {
  
        int a = 2;
        int shifts = 0;
        while (shifts < 6)
        // It will return the value obtained by rotating left
        {
            a = Integer.rotateLeft(a, 2);
            System.out.println(a);
            shifts++;
        }
    }
}
输出:
8
32
128
512
2048
8192

程序 2:对于负数。

// Java program to illustrate the
// Java.lang.Integer.rotateLeft() method
import java.lang.*;
  
public class Geeks {
  
    public static void main(String[] args)
    {
  
        int a = -16;
        int shifts = 0;
        while (shifts < 2)
        // It will return the value obtained by rotating left
        {
            a = Integer.rotateLeft(a, shifts);
            System.out.println(a);
            shifts++;
        }
    }
}
输出:
-16
-31

程序 3:对于十进制值和字符串。
注意:当十进制值和字符串作为参数传递时,它会返回错误消息

// Java program to illustrate the
// Java.lang.Integer.rotateLeft() method
import java.lang.*;
  
public class Geeks {
  
    public static void main(String[] args)
    {
  
        int a = 15.71;
        int shifts = 0;
        while (shifts < 2)
  
        {
            a = Integer.rotateLeft(a, shifts);
            System.out.println(a);
            shifts++;
        }
        int b = "61";
        int shifts2 = 0;
        while (shifts2 < 2)
  
        {
            b = Integer.rotateLeft(b, shifts2);
            System.out.println(b);
            shifts2++;
        }
    }
}
输出:
prog.java:9: error: incompatible types: possible lossy conversion from double to int
    int a = 15.71;
            ^
prog.java:18: error: incompatible types: String cannot be converted to int
   int    b = "61";
              ^
2 errors