比方说,我已经把三个10位有符号整数打包成一个Java整数。
我可以轻松提取10位:
int unpacked = packed & 0x3FF; packed >>= 10; etc ...
但现在我需要签名扩展顶部位(从右边第9位)。有没有一种快速的方法可以做到这一点,借助于测试顶端位和设置?
也许有一种更好的拆箱方法可以使标志保持原位。
int signed = (packed << (32 - 10)) >> 10;
AS >>> 无符号右移,和 >> 签字的右移。
>>>
>>