Java中的移位运算符:<<,>>,>>>
Java中有三种移位运算符
<< : 左移运算符,num << 1,相当于num乘以2
>> : 右移运算符,num >> 1,相当于num除以2
>>> : 无符号右移,忽略符号位,空位都以0补齐
| 二进制 | 十进制 | 备注 | 代码 |
|---|---|---|---|
| 1010 | 10 | 原始数 | number |
| 1010 | 20 | 左移一位 | number = number << 1; |
| 1010 | 10 | 右移一位 | number = number >> 1; |
用代码看一下具体实现:
1 | public class Test { |
运行结果为:
1 | 1010 |
对于:>>>
无符号右移,忽略符号位,空位都以0补齐
value >>> num // num:指定要移位值value 移动的位数。
无符号右移的规则只记住一点:忽略了符号位扩展,0补最高位 无符号右移运算符>>> 只是对32位和64位的值有意义
详情请参考官方文档:
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html
区别:
https://stackoverflow.com/questions/2811319/difference-between-and
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 被咬了一口の包子°!
评论






