java中的移位运算符:<<,>>,>>>总结

时间:2023-01-11 16:06:36

java中有三种移位运算符

<<      :     左移运算符,num << 1,相当于num乘以2

>> : 右移运算符,num >> 1,相当于num除以2

>>> : 无符号右移,忽略符号位,空位都以0补齐
package per.peter;

public class Main {
public static void main(String[] args) {
int number = 100;
System.out.println("原始二进制:" + Integer.toBinaryString(number) + "十进制:" + number);
number = number << 1;
System.out.println("左移一位:" +Integer.toBinaryString(number) + "十进制:" + number);
number = number >> 1;
System.out.println("右移一位:" +Integer.toBinaryString(number) + "十进制:" + number);
number = number >>> 2;
System.out.println("无符号右移两位:" +Integer.toBinaryString(number) + "十进制:" + number);

}
}

输出结构:

原始二进制:1100100十进制:100
左移一位:11001000十进制:200
右移一位:1100100十进制:100
无符号右移两位:11001十进制:25

注意: 若移动的位数超过了该类型的位数,系统会自动对移动位数取模。例如:int(32位) 如果右移33位,则系统自动对33取模,33%32 = 1,变成右移动一位。

本文是日常开发的随手记录,如有问题,请博内留言以帮助我改正和完善,一起努力,一起学习,一起进步!如果觉得有帮助,记得赞一个哟。