go - 如何用 Go 实现 BitSet?

标签 go

我在 Go 中没有找到 BitSet 包,所以我尝试实现它。 我想使用一个 uint64 数组来存储位。

我需要分配 uint64 数组的位数。 使用 Java,我可以定义一个接受整数的构造函数。 虽然 Go 不提供构造函数,但如何正确初始化 用户调用 new() 时的 BitSet 'object'?

最佳答案

Go 的标准 big.Int可以作为位集使用:

package main

import (
    "fmt"
    "math/big"
)

func main() {
    var bits big.Int
    for i := 1000; i < 2000; i++ {
        bits.SetBit(&bits, i, 1)
    }
    for i := 0; i < 10000; i++ {
        if bits.Bit(i) != 0 {
            fmt.Println(i)
        }
    }
}

https://play.golang.org/p/xbIK-boouqC

关于go - 如何用 Go 实现 BitSet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2311373/

相关文章:

unit-testing - beego 测试用例返回 404 状态,端点不匹配

go - 无论如何在ansi控制台上打印斜体字体?

Gob解码无法解码寄存器类型后的接口(interface)

for-loop - 如何修改 slice 中结构的字段?

loops - 如何在不运行以下脚本的情况下退出循环

sql - 如何将数组设置为SQL查询的参数

go - 什么时候reflect type.Size()返回0?

go - 确保值仅被检索一次

docker - 在 $GOROOT 或 $GOPATH 中找不到包 cid

http - 在不同位置提供静态文件