2015-10-29 110 views
4

在Go中,可以使用byte uint uint16或任何其他內置類型提供的位數來定義一個自定義類型?Go中的自定義長度位類型?

我打算使用「剛好夠用位」來表示變量,並希望6位和4位的類型。也許是一個複合布爾類型?

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

雖然這種事情是相當混亂,這將是不錯的,對於n位的類型更通用的解決方案。

+0

你可能會尋找這樣的事情; https://golang.org/pkg/encoding/binary/您可以將小值存儲爲一個字節,但不太確定存儲的值是一個半字節,您可能必須將其舍入並放入一個2字節緩衝區。 – evanmcdonnal

+0

在大多數編程語言更常見的圖案(和整個轉到使用)是一個位圖,以容納多達8個值每字節:http://play.golang.org/p/DZj9FerK19 – JimB

回答

3

號在當前實現方式中,包括bool型a轉到類型的最小大小,爲一個字節。

參考文獻:

The Go Programming Language Specification

+1

[_basic尋址單元_](HTTP:/ /stackoverflow.com/a/4626993/2055586),有趣,非常酷的感謝回覆。 – rigsby

相關問題