代码之家  ›  专栏  ›  技术社区  ›  Koz Ross

将UInt64数组转换为位向量

  •  0
  • Koz Ross  · 技术社区  · 8 年前

    我最近发现我可以得到 UInt64 暂时 BitVector 使用 chunks .然而,我想走相反的路——给定一个一维数组 UInt64 ,构建一个 位向量 使用一些函数 foo 以至于

    foo(x.chunks) == x

    这样的功能存在吗?

    1 回复  |  直到 8 年前
        1
  •  3
  •   gotnull mzelina    8 年前

    你想要什么 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 如果需要的话。