>>>表示右移一位,相当于原来的数除以2;
无符号右移运算符>>> 它的通用格式如下所示: value >>> num num 指定要移位值value 移动的位数 。 无符号右移的规则只记住一点:忽略了符号位扩展,0补最高位 无符号右移运算符>>> 只是对32 位和64位 的值有意义
>>也表示右移,但是这个可以自由定义它的移动位数,比如>>3,则表示右移3位,也就相当于原来的数除以2的3次方;
16>>3等价于16/(2的3次方)
<<则与>>相对应,表示左移,也可以自由指定位数,例如 <<2,表示左移2位,也就相当于原来的数乘以2的2次方
64<<4 等价于64*(2的4次方)
无符号右移运算符>>> 它的通用格式如下所示: value >>> num num 指定要移位值value 移动的位数 。 无符号右移的规则只记住一点:忽略了符号位扩展,0补最高位 无符号右移运算符>>> 只是对32 位和64位 的值有意义
>>也表示右移,但是这个可以自由定义它的移动位数,比如>>3,则表示右移3位,也就相当于原来的数除以2的3次方;
16>>3等价于16/(2的3次方)
public class Test {
public static void main(String[] args) {
int number = 10;
//原始数二进制
printInfo(number);
number = number << 1;
//左移一位
printInfo(number);
number = number >> 1;
//右移一位
printInfo(number);
}
/**
* 输出一个int的二进制数
* @param num
*/
private static void printInfo(int num){
System.out.println(Integer.toBinaryString(num));
}
<<则与>>相对应,表示左移,也可以自由指定位数,例如 <<2,表示左移2位,也就相当于原来的数乘以2的2次方
64<<4 等价于64*(2的4次方)