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

三、讲解

四、补充

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

 

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

 

五、参考项

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

转载于:https://www.cnblogs.com/zte-cly310111/p/4476500.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值