java中移位运算符:<<、>>和>>>之间的比较

时间:2023-03-09 19:27:43
java中移位运算符:<<、>>和>>>之间的比较

一、说明

<<:运算符将二进制位进行左移操作

>>:运算符将二进制位进行右移操作

>>>:运算符将用0填空高位

二、举例


 /**
  *
  *----------caonima be here!----------/
  *   ┏┓   ┏┓
  *   ┏┛┻━━━┛┻┓
  *   ┃       ┃
  *   ┃   ━   ┃
  *   ┃ ┳┛ ┗┳ ┃
  *   ┃       ┃
  *    ┃   ┻   ┃
  *   ┃       ┃
  *   ┗━┓   ┏━┛
  *      ┃   ┃神兽保佑
  *     ┃   ┃代码无BUG!
  *     ┃   ┗━━━┓
  *     ┃       ┣┓
  *     ┃       ┏┛
  *     ┗┓┓┏━┳┓┏┛
  *      ┃┫┫ ┃┫┫
  *      ┗┻┛ ┗┻┛
  * ━━━━━━神兽出没━━━━━━
  *
  * @author 赵天恩
  * @version 1.0
  * 创建时间:2015年5月4日 15:25:55
  */
 public class Demo {
     public static void main(String[] args) {
         int i = 2;
         //原是数值转成二进制
         STT(i);
         // 左移操作
         // 左移操作后的二进制
         STT(i << 1);
         //右移操作
         // 右移操作后的二进制
         STT(i >> 1);
         //
         STT(i>>>1);

     }

     /**
      * 十进制转成二进制
      *
      * @param i
      */
     public static void STT(int i) {
         System.out.println("原数据:"+i);
         System.out.println("原数据转成二进制:"+Integer.toBinaryString(i));
     }
 }

 

运行结果:

原数据:2
原数据转成二进制:10
原数据:4
原数据转成二进制:100
原数据:1
原数据转成二进制:1
原数据:1
原数据转成二进制:1

三、讲解

java中移位运算符:<<、>>和>>>之间的比较

四、补充

针对>>>运算符,是将0填充高位,一般使用较少

面试的时候,面试官会问道如何用最短的时间实现1+1=2,这个时候你应该毫不犹豫的答道:“1<<1”。

五、参考项

http://www.cnblogs.com/hongten/p/hongten_java_yiweiyunsuangfu.html

相关文章