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

一、说明

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

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

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

二、举例

 
   
 1 /** 

 2  * 

 3  *----------caonima be here!----------/ 

 4  *   ┏┓   ┏┓ 

 5  *   ┏┛┻━━━┛┻┓ 

 6  *   ┃       ┃ 

 7  *   ┃   ━   ┃ 

 8  *   ┃ ┳┛ ┗┳ ┃ 

 9  *   ┃       ┃ 

10  *    ┃   ┻   ┃ 

11  *   ┃       ┃ 

12  *   ┗━┓   ┏━┛ 

13  *      ┃   ┃神兽保佑 

14  *     ┃   ┃代码无BUG! 

15  *     ┃   ┗━━━┓ 

16  *     ┃       ┣┓ 

17  *     ┃       ┏┛ 

18  *     ┗┓┓┏━┳┓┏┛ 

19  *      ┃┫┫ ┃┫┫ 

20  *      ┗┻┛ ┗┻┛ 

21  * ━━━━━━神兽出没━━━━━━

22  * 

23  * @author 赵天恩

24  * @version 1.0 

25  * 创建时间:2015年5月4日 15:25:55

26  */

27 public class Demo {

28     public static void main(String[] args) {

29         int i = 2;

30         //原是数值转成二进制

31         STT(i);

32         // 左移操作

33         // 左移操作后的二进制

34         STT(i << 1);

35         //右移操作

36         // 右移操作后的二进制

37         STT(i >> 1);

38         //

39         STT(i>>>1);

40     

41     }

42 

43     /**

44      * 十进制转成二进制

45      * 

46      * @param i

47      */

48     public static void STT(int i) {

49         System.out.println("原数据:"+i);

50         System.out.println("原数据转成二进制:"+Integer.toBinaryString(i));

51     }

52 }
 
   

 

 

运行结果:

原数据: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

你可能感兴趣的:(java)