java基础----位移运算

左移运算只有<<,表示不带符号左移。它作位移处理时,会直接左移并在低位填入0,所以如果被操作数太大(除符号位外的最高位为1)的话,原本的正数可能会变成负数。如(byte)(64<<1)得到的结果是-128,而(int)(64<<1)的结果则是正常的128。


右移运算有>>,它作位移处理时,会先将整个值向右移指定的位数,然后将所有空位填充为原符号位的值。顺带一提,右移运算遇到右边操作数为负数时会忽略其符号位,如>>-127与>>1的效果是一样的。

右移运算还有>>>,表示无符号右移,它处理时连符号位一起移动,然后在空出的高位全部填入0。当我们要作位移的原始值并非代表数值时(例如:表示颜色图素的值,最高位并非正负号),可能就会需要使用此种无符号的位移。


tips:java中的简写(+=、-=等)这些在jdk1.8都会自动拆装箱。实际上单独计算的结果都自动转换成int类型。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值