java中的位移,java中的位移运算符

java中的移位运算符

移位运算符是在数字的二进制形式上进行平移。主要有左移(<>)以及无符号右移(>>>)。

左移运算符(<

带符号右移运算符(>>)的运算规则为:按二进制形式将数字右移相应位数,低位舍弃,高位正数补零,负数补1。

无符号右移运算符(>>>)的运算规则为:按二进制形式将数字右移相应位数,低位舍弃,高位补零。

int a=-8;

System.out.println(a << 2);

System.out.println(a >> 2);

System.out.println(a >>> 2);输出结果为

-32

-2

1073741822

值得注意的移位运算其实可以看做对类型的位数取余后的移位。java中int是32位,long是64位。比如对int型的数字做左移40位的操作,与左移40%32=8位效果是相同的。若对int型做移位32*n的运算,则相当于什么都没做。

而对于byte、char以及short,在做移位运算时会自动类型转换成int型。因此对于下面的代码,输出为8 8 8 8 0

byte b=8;

short s=8;

char c=8;

int i=8;

long l=8;

System.out.println(b >> 32);

System.out.println(s >> 32);

System.out.println(c >> 32);

System.out.println(i >> 32);

System.out.println(l >> 32);

原博地址:http://blog.csdn.net/maggiedorami

版权声明:原创文章,转载时请务必加上原文超链接、作者信息或本声明。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值