Java 位移运算符

>>,<<,>>>

  1. << 左移运算符
  2. >> 右移运算符(也称有符号右移运算符)
  3. >>> 无符号右移运算符
    前四个就不用说了,下面主要说下后三个:

    << 左移(左移1位相当于乘2)

    例:2<<3 2左移3位就相当于2乘了三次2,也就是2*8,结果就是16
    对应二进制要好理解一些:
    2(int)换算成二进制就是:0000 0000 0000 0000 0000 0000 0000 0010
    左移三位是: 0000 0000 0000 0000 0000 0000 0001 0000(高位舍弃,低位补0)
    换算成十进制就是16

    >> 右移(右移1位相当于除2取商)

    例:16>>3 16右移3位就相当于16除了三次2,也就是16/8,结果就是2
    对应二进制:
    16(int)换算成二进制就是:0000 0000 0000 0000 0000 0000 0001 0000
    右移三位是:0000 0000 0000 0000 0000 0000 0000 0010(高位补0,低位舍弃)
    换算成十进制就是2

    >>> 无符号右移

    例:16>>>3
    对应二进制:
    16(int)换算成二进制就是:0000 0000 0000 0000 0000 0000 0001 0000
    无符号右移三位结果就是:0000 0000 0000 0000 0000 0000 0000 0010(高位补0,你们舍弃)
    换算成二进制就是2

以下为对应代码及输出结果:

public static void main(String[] args) {
        int a = 16;
        int b = 2;
        //输出2左移3位的结果
        System.out.println(b << 3);
        //输出16右移3位的结果
        System.out.println(a >> 3);
        //输出16无符号右移3位的结果
        System.out.println(b >>> 3);
    }

结果:

16
2
0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

民鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值