java中的移位运算符 <<、>>、>>>使用时
1: num <<1 表示将num的二进制值向左移动一位,右面补零;
2: num>>1 表示将num的二进制值向右移动一位 ,从右侧去掉一位
3: num>>>
无符号右移,忽略符号位,空位都以0补齐
public class BItMoveDemo {
public static void main(String[] args) {
int num = 35;
System.out.println("原始数据二进制:"+getBinaryString(num));
num = num<<1;
System.out.println("数据向左移位:"+getBinaryString(num));
num = num>>1;
System.out.println("数据向右移位:"+getBinaryString(num));
num = num>>>1;
System.out.println("数据向右移位,忽略符号位:"+getBinaryString(num));
int num2 = -1;
System.out.println("原始数据2二进制:"+getBinaryString(num2));
num2 = num2<<1;
System.out.println("数据2向左移位:"+getBinaryString(num2));
num2 = num2>>1;
System.out.println("数据2向右移位:"+getBinaryString(num2));
num2 = num2>>>1;
System.out.println("数据2向右移位,忽略符号位:"+getBinaryString(num2));
}
/**
* 返回二进制格式字符串
* @param num
* @return
*/
static String getBinaryString(int num ){
return Integer.toBinaryString(num);
}
}
运行结果: