是否有内置函数将uint
转换为一片二进制整数{0,1}
?
>> convert_to_binary(2)
[1, 0]
最佳答案
我不知道这样的功能,但是您可以为此目的使用strconv.FormatUint
。
范例(on play):
func Bits(i uint64) []byte {
bits := []byte{}
for _, b := range strconv.FormatUint(i, 2) {
bits = append(bits, byte(b - rune('0')))
}
return bits
}
FormatUint
将给定uint
的字符串表示形式返回为基数,在本例中为2,因此我们将其编码为二进制。因此,返回的i=2
字符串如下所示:"10"
。以字节为单位,这是[49 48]
,因为ASCII和Unicode中1为49,0为48。因此,我们只需要遍历字符串,就可以从每个 rune (unicode字符)中减去48,并将其转换为字节。关于go - Go中无符号整数的二进制表示形式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19553878/