Scala Bitset toBitMask转换

时间:2017-01-09 21:16:23

标签: scala bitset

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
  1. 为什么nums1 = 12而nums2 = 13?

1 个答案:

答案 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的二进制文件。