Go中的自定义长度位类型?

Go中的自定义长度位类型?,go,types,bit,Go,Types,Bit,在Go中,是否可以使用字节uint uint16或任何其他内置类型提供的比特数以外的比特数定义自定义类型 我计划使用“刚好足够的位”来表示变量,并希望使用6位和4位类型。也许是复合布尔类型 type fourbit struct{ ones bool twos bool fours bool eights bool } 尽管这类事情相当混乱,如果能为n位类型提供一个更通用的解决方案就好了 否。在当前的实现中,包括typebool,Go类型的最小大小为一

在Go中,是否可以使用字节uint uint16或任何其他内置类型提供的比特数以外的比特数定义自定义类型

我计划使用“刚好足够的位”来表示变量,并希望使用6位和4位类型。也许是复合布尔类型

type fourbit struct{
    ones   bool
    twos   bool
    fours  bool
    eights bool
}

尽管这类事情相当混乱,如果能为n位类型提供一个更通用的解决方案就好了

否。在当前的实现中,包括type
bool
,Go类型的最小大小为一个字节

参考资料:


您可能正在寻找类似的产品;您可以将小值存储为一个字节,但对于存储一个半字节的值不太确定,您可能需要将其取整并放入一个2字节的缓冲区。在大多数编程语言中(在整个Go中使用)更常见的模式是位图,每个字节最多可容纳8个值:,非常有趣,非常酷,感谢您的快速回复。