Java中的移位操作符

Java中移位操作符有三个:<<、>>、>>>,分别叫做左移位操作符、有符号右移位操作符、无符号右移操作符。

左位移操作符(<<):无论是有符号数还是无符号数,都低位补0。

有符号右移位操作符(>>):用符号扩展,为正高位补0,为负高位补1。

无符号右移操作符(>>>):无论是有符号数还是无符号数,都高位补0,称为零扩展。(C/C++无此操作符)

小技巧:移位赋值

i >>= 10;

将i右移10位后的值再赋给i。等价于:i = i >> 10;。

移位预处理

char、byte、shor类型进行移位操作时,先会自动转换为int类型再移位。由于int类型只有32位,所以,当出现移位:

i << 127;

时,int型的i当然不会左移127位,而只会左移32位(32 = 2^5,127 = 1111 1111)。所以,int类型移位的时候,移位数只有低5位有效。同理,long类型移位时,移位数只有低6位有效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值