toBitMask
的{{1}}说明BitSet
。但我无法理解Creates a bit mask for this set as a new array of longs
如何真正创建一个位掩码。例如,我有下一个代码:
toBitMask
1。它返回64,为什么它返回64?
另一个例子
import scala.collection.BitSet
val nums = BitSet(6)
nums.toBitMask foreach println
答案 0 :(得分:3)
看起来正在发生的事情是.toBitMask
将BitSet中的每个数字都视为“此位数将设置为1”。
BitSet(0).toBitMask == Array(1)
BitSet(1).toBitMask == Array(2)
BitSet(2).toBitMask == Array(4)
BitSet(3).toBitMask == Array(8)
因此,如果您有BitSet(3, 2)
,则创建一个数字,其中第3位和第2位(零索引)为1:
00001100
这是12的二进制文件。BitSet(3,2,0)
创建
00001101
是13的二进制文件。