将 UInt64 数组转换为 BitVector
Convert an array of UInt64 into a BitVector
我最近发现我可以使用 chunks
得到 UInt64
的 BitVector
的 'backing array'。但是,我想走相反的路——给定一个 UInt64
的一维数组,使用某个函数 foo
构造一个 BitVector
使得
foo(x.chunks) == x
有这样的功能吗?
this 这样的东西行得通吗?
function foo(v::Vector{UInt64})
siz = sizeof(v)
bv = falses(siz << 6)
unsafe_copy!(reinterpret(Ptr{UInt64}, pointer(bv.chunks)), pointer(v), siz)
bv
end
如果需要,它们还提供重载来设置结果 BitVector
中的位数。
我最近发现我可以使用 chunks
得到 UInt64
的 BitVector
的 'backing array'。但是,我想走相反的路——给定一个 UInt64
的一维数组,使用某个函数 foo
构造一个 BitVector
使得
foo(x.chunks) == x
有这样的功能吗?
this 这样的东西行得通吗?
function foo(v::Vector{UInt64})
siz = sizeof(v)
bv = falses(siz << 6)
unsafe_copy!(reinterpret(Ptr{UInt64}, pointer(bv.chunks)), pointer(v), siz)
bv
end
如果需要,它们还提供重载来设置结果 BitVector
中的位数。