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