Java Long.rotateLeft()方法

原文:https://www.studytonight.com/java-wrapper-class/java-long-rotateleft-method

Java rotateLeft()方法是java.lang包的 Long 类的一部分。此方法用于返回通过将作为参数传递的数字的二进制等价形式的二进制补码向左(即向高阶)旋转参数中指定的距离而获得的值。

该方法基于位移位操作,其中二进制数的所有位被向左或向右移位到一定数量的位置。例如,rotateLeft(10,1) 指的是 10 的二进制等效值向左旋转一位。10 的等价二进制为 00001010左移 1 位将转换为 00010100 (即等于 20 )。

需要注意的是,负距离的左旋转相当于右旋转:rotateLeft(val, -distance) == rotateRight(val, distance)

语法:

public static long rotateLeft(long i, int distance)

参数:

传递的参数是一个长的i和一个整数距离,前者表示要旋转的二进制等价位,后者表示要旋转的位数。

返回:

返回通过将作为参数传递的长值的二进制等价形式的二进制补码向左(即向高阶)旋转方法中传递的距离而获得的值。

例 1:

这里,为了更好地理解该方法,取一个正数和一个负数。Long.toBinaryString()方法用于以二进制等价形式表示数字。

import java.lang. * ;

public class StudyTonight {

  public static void main(String[] args) {

    long n1 = 4L;
    long n2 = -4L;
    int val = 3;

    System.out.println("Binary equivalent is : " + Long.toBinaryString(n1));

    for (int i = 0; i < val; i++) {
      n1 = Long.rotateLeft(n1, val); //returns the value after rotation
      System.out.println(n1);
    }

    System.out.println("Binary equivalent is : " + Long.toBinaryString(n2));

    for (int i = 0; i < val; i++) {
      n2 = Long.rotateLeft(n2, val); //returns the value after rotation
      System.out.println(n2);
    }
  }
}

二进制等值为:100 32 256 2048 二进制等值为:1111111111111111111111111111111111111111111111111111100 -25 -193 -1537

例 2:

这里有一个用户定义的例子,任何使用这段代码的人都可以输入自己选择的值,并获得等效的输出。

import java.lang. * ;
import java.util. * ;

public class StudyTonight {

  public static void main(String[] args) {
    try {
      System.out.println("Enter the value and distance");
      Scanner sc = new Scanner(System. in );
      long n = sc.nextLong();
      int val = sc.nextInt();

      System.out.println("Binary equivalent is : " + Long.toBinaryString(n));

      for (int i = 0; i < val; i++) {
        n = Long.rotateLeft(n, val); //returns the value after rotation
        System.out.println(n);
      }
    }
    catch(Exception e) {
      System.out.println("Invalid Input");
    }

  }
}

输入数值和距离 8 4 二进制等效值为:1000 128 2048 32768 524288

                                                        • *输入数值和距离 -8 6 二进制等效值为:1111111111111111111111111111111111111111111111111111111111111111111111111111111

实时示例:

在这里,您可以测试实时代码示例。您可以为不同的值执行示例,甚至可以编辑和编写您的示例来测试 Java 代码。