是否有内置函数将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/

10-15 06:12