Java中三种移位运算符详解
<< 左移运算符,num << 1,相当于num乘以2
>> 右移运算符,num >> 1,相当于num除以2
>>> 无符号右移,忽略符号位,空位都以0补齐
代码部分:
/**
* 对三种运算符使用代码演示
* @author Katrina
*
*/
public class Main{
public static void main(String[] args) {
int num = 10;
//原始数二进制
printInfo(num);
//左移一位
num = num << 1;
printInfo(num);
//右移一位
num = num >> 1;
printInfo(num);
//无符号右移一位
num = num >>> 1;
printInfo(num); //数字右移,左侧空出来的高位用0补齐。
}
/**
* 输出一个int的二进制数
*/
private static void printInfo(int num) {
System.out.println(Integer.toBinaryString(num));
}
}
效果图:
part1:
part2:
负数情况:
int c = -12; //11111111111111111111111111110100
System.out.println("c >>> 2 = " + (c >>> 2));//00111111111111111111111111111101
System.out.println("c >> 2 = " + (c >> 2)); //11111111111111111111111111111101
运行结果如下: