uint
aをバイナリ整数のスライスに変換する組み込み関数はあります{0,1}
か?
>> convert_to_binary(2)
[1, 0]
そのような機能は知りませんがstrconv.FormatUint
、その目的で使用できます。
例 (プレイ中):
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 をバイト単位で表します。そのため、各ルーン文字 (Unicode 文字) から 48 を減算し、それをバイトに変換して、文字列を繰り返し処理する必要があります。