Scala中的位字段

Scala中的位字段,scala,bit-manipulation,Scala,Bit Manipulation,如何在Scala中模拟位字段?位字段用于访问一种类型的某些位(如C中所示)。我知道可以用BIT运算符编写,但我认为如果不考虑性能,有更好的方法。 谢谢你给我的每一个提示。遗憾的是,没有。。。移位运算符和逐位布尔运算符几乎是您所拥有的全部。如果您只需要单个位,那么collection.BitSet将适用于您 如果您想要一个合适的位字段类,那么您的运气不佳有两个原因。首先,因为Scala没有。第二,因为即使这样做了,节省的空间可能也不会很可观,因为与您的位相比,封闭对象的开销可能会很大 通过一些工作

如何在Scala中模拟位字段?位字段用于访问一种类型的某些位(如C中所示)。我知道可以用BIT运算符编写,但我认为如果不考虑性能,有更好的方法。
谢谢你给我的每一个提示。

遗憾的是,没有。。。移位运算符和逐位布尔运算符几乎是您所拥有的全部。

如果您只需要单个位,那么
collection.BitSet
将适用于您

如果您想要一个合适的位字段类,那么您的运气不佳有两个原因。首先,因为Scala没有。第二,因为即使这样做了,节省的空间可能也不会很可观,因为与您的位相比,封闭对象的开销可能会很大


通过一些工作,有两种方法可以解决这个问题:一个自定义定义的类,它包装一个整数,并允许您将其部分作为位字段进行操作;但是,当您要存储整数时,只需将其保存为primitive int。或者您可以创建一个位字段结构(任意长度)数组,并将其实现为整数数组。但是没有任何东西是内置的;你必须自己动手。

还有回购协议

Java位集类的字对齐压缩变体。它使用64位游程长度编码(RLE)压缩方案


就我目前对Scala的了解而言,我不知道该怎么做,但我认为利用某些特征结构是可能的。谢谢你的回复:)