zl程序教程

您现在的位置是:首页 >  后端

当前栏目

java中的移位运算符心得总结

JAVA 总结 运算符 心得 移位
2023-06-13 09:15:07 时间

java中有三种移位运算符

<<     :    左移运算符,num<<1,相当于num乘以2

>>     :    右移运算符,num>>1,相当于num除以2

>>>   :    无符号右移,忽略符号位,空位都以0补齐

下面来看看这些移位运算都是怎样使用的

复制代码代码如下:


/**
 *
 */
packagecom.b510.test;

/**
 *@authorJoneHongten
 *@createdate:2013-11-2
 *@version1.0
 */
publicclassTest{

   publicstaticvoidmain(String[]args){
       intnumber=10;
       //原始数二进制
       printInfo(number);
       number=number<<1;
       //左移一位
       printInfo(number);
       number=number>>1;
       //右移一位
       printInfo(number);
   }

   /**
    *输出一个int的二进制数
    *@paramnum
    */
   privatestaticvoidprintInfo(intnum){
       System.out.println(Integer.toBinaryString(num));
   }
}

运行结果为:

1010
10100
1010我们把上面的结果对齐一下:

43210     位数--------
 1010     十进制:10    原始数        number
10100     十进制:20    左移一位      number=number<<1;
 1010     十进制:10    右移一位      number=number>>1;

 

看了上面的demo,现在是不是对左移和右移了解了很多了呢

对于:>>>

 无符号右移,忽略符号位,空位都以0补齐

value>>>num    --  num指定要移位值value移动的位数。

无符号右移的规则只记住一点:忽略了符号位扩展,0补最高位 无符号右移运算符>>>只是对32位和64位的值有意义