【问题标题】:Custom length bit types in Go?Go中的自定义长度位类型?
【发布时间】: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

标签: go types bit


【解决方案1】:

没有。当前实现中的 Go 类型(包括 bool 类型)的最小大小为 1 个字节。

参考资料:

The Go Programming Language Specification

【讨论】:

猜你喜欢
  • 2016-07-17
  • 2014-01-12
  • 2019-11-16
  • 2012-07-05
  • 2021-10-30
  • 1970-01-01
  • 2011-08-28
  • 2014-08-14
  • 1970-01-01
相关资源
最近更新 更多