Java中有三种位运算符 分别为<<、>>和>>>
分别表示:
<< : 左移运算符,num<<1,左移1位,空位都以0补齐
>> : 右移运算符,num>>1,右移1位,多余位直接去掉
>>> : 无符号右移,忽略符号位,空位都以0补齐
//下面通过一个小的案例来理解一下位运算
public class TestBitwise {
public static void main(String[] args){
int number = 11;
//输出11的二进制
printInfo(number);
number = number>>1;
//输出右移一位的二进制
printInfo(number);
number = number<<3;
//输出左移3位的二进制
printInfo(number);
}
//输出一个int类型的二进制
private static void printInfo(int num){
System.out.println(Integer.toBinaryString(num));
}
}
运行结果为:
1011
101
101000
看完上边的案例,应该可以理解左移和右移了。
对于:>>>
无符号右移,忽略符号位,空位用0补齐
value>>>num num用来指定value无符号右移的位数
无符号位移的规则只需要记住一点:忽略符号位的扩展,用0补最高位。
无符号右移运算>>> :只是对32位和64位的值有意义。
本博客仅供个人学习使用,如有侵权,敬请谅解。
版权声明:本文为gongchengshi9527原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。