为了账号安全,请及时绑定邮箱和手机立即绑定

Go中无符号整数的二进制表示

Go中无符号整数的二进制表示

Go
犯罪嫌疑人X 2021-06-29 20:13:57
是否有内置函数将 a 转换uint为二进制整数切片{0,1}?>> convert_to_binary(2) [1, 0]
查看完整描述

1 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

我不知道有这样的功能,但是您可以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 并将其转换为一个字节。


查看完整回答
反对 回复 2021-07-05
  • 1 回答
  • 0 关注
  • 252 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信