Java Integer.rotateRight()
方法
原文:https://www.studytonight.com/java-wrapper-class/java-integer-rotateright-method
Java rotateRight()
方法是java.lang
包的Integer
类的一部分。此方法用于返回通过将作为参数传递的数字的二进制等价形式的二进制补码向右(即向低阶)旋转参数中指定的距离而获得的值。
这种方法也是基于比特移位操作,其中二进制数的所有比特被向左或向右移位到一定数量的位置。例如,rotateRight(10,1)
指的是 10 的二进制表示向右旋转一位。10 的等价二进制数是 00001010,通过向左移位 1 位,它将被转换为 00000101(即等于 5)。
语法:
public static int rotateRight(int i, int distance)
参数:
传递的参数是整数值,指定要旋转的二进制等价位,以及指定要旋转的位数的 int 距离。
返回:
返回通过将作为参数传递的数字的二进制等价形式的二进制补码向右(即向低阶)旋转方法中传递的距离而获得的值。
例 1:
这里,为了更好地理解该方法,取一个正数和一个负数。Integer.toBinaryString()
方法用于以二进制等价形式表示数字。
import java.lang.*;
public class StudyTonight
{
public static void main(String[] args)
{
int n1 = 8;
int n2 = -8;
int val = 3;
System.out.println("Binary equivalent is : " + Integer.toBinaryString(n1));
for(int i = 0; i < val; i++)
{
n1 = Integer.rotateRight(n1, val); //returns the value after rotation
System.out.println(n1);
}
System.out.println("Binary equivalent is : " + Integer.toBinaryString(n2));
for(int i = 0; i < val; i++)
{
n2 = Integer.rotateRight(n2, val); //returns the value after rotation
System.out.println(n2);
}
}
}
二进制等值为:1000 1 536870912 67108864 二进制等值为:11111111111111111111111000 536870911 -469762049 -58720257
例 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);
int n = sc.nextInt();
int val = sc.nextInt();
System.out.println("Binary equivalent is : " + Integer.toBinaryString(n));
for(int i = 0; i < val; i++)
{
n = Integer.rotateRight(n, val); //returns the value after rotation
System.out.println(n);
}
}
catch(Exception e)
{
System.out.println("Invalid Input");
}
}
}
输入数值和距离 6 3 二进制等效值为:110 -1073741824 402653184 50331648
- *输入数值和距离 -6 3 二进制等效值为:11111111111111111111111111111111111111111111111111111111111111111111111111111
实时示例:
在这里,您可以测试实时代码示例。您可以为不同的值执行示例,甚至可以编辑和编写您的示例来测试 Java 代码。