【发布时间】:2016-01-30 06:03:35
【问题描述】:
在 Go 中,是否可以使用 byte uint uint16 或任何其他内置类型提供的位数以外的位数定义自定义类型?
我打算使用“刚好够用的位”来表示变量,并且想要 6 位和 4 位类型。也许是复合布尔类型?
type fourbit struct{
ones bool
twos bool
fours bool
eights bool
}
虽然这种事情很混乱,但如果有一个更通用的 n 位类型解决方案会很好。
【问题讨论】:
-
您可能正在寻找这样的东西; golang.org/pkg/encoding/binary 您可以将小的值存储为一个字节,但不太确定存储一个半字节的值,您可能必须四舍五入并将其放入 2 字节的缓冲区中。
-
在大多数编程语言(并在整个 Go 中使用)中更常见的模式是一个位图,每个字节最多保存 8 个值:play.golang.org/p/DZj9FerK19