我需要从一个长整型值中提取特定的位范围,例如:
long input = 15367 (11110000000111)
我需要做的是从原始长整型值中提取两个长整型数值。
First long is 5 bits starting from bit 0, so bits 0:4 = 7 (0111)
Second long is 56 bits starting from bit 8, so bits 7:55 = 60 (1111000)
我知道这可以通过位移和掩码来完成,但是我不太确定如何实现动态性,因为每次需要执行此操作时,长整型将会不同,特定的位范围也会不同。
我一直在阅读关于BitSet和BitArray的文章,但我并不确定它们是否适合此工作。
如何最好地实现这一点的任何建议都将不胜感激。
谢谢!
10001111
并希望从偏移量3开始提取三个位:如果使用>>>
,则右移将给出00010001
,但是使用>>
将给出11110001
(符号位被传递)。 - fge