我需要从长值中提取某些位范围,例如:
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)
我知道这可以通过位移和屏蔽来完成,但是我不完全确定如何实现它,所以它每次都是动态的,因为每次我需要这样做时,long 会有所不同,具体的也会有所不同位范围。
我一直在阅读有关 BitSets 和 BitArrays 的信息,但我并不完全确定这些是否适合这项工作。
任何关于实现这一点的最佳方法的建议将不胜感激。
谢谢!