一个数左移n位,就是等于这个数乘以2的n次方(*2n),一个数右移n位,就是等于这个数除以2的n次方(/2n)
测试一:
public static void main(String[] args) {
int num=20;
int left_num=num<<1;
int right_num=num>>1;
System.out.println("原来:"+num);
System.out.println("左移:"+left_num);
System.out.println("右移:"+right_num);
}
测试结果:
原来:20
左移:40
右移:10
测试二:
public static void main(String[] args) {
int num=20;
int left_num=num<<2;
//除以2的3次方取整
int right_num=num>>3;
System.out.println("原来:"+num);
System.out.println("左移:"+left_num);
System.out.println("右移:"+right_num);
}
测试结果:
原来:20
左移:80
右移:2