gpt4 book ai didi

go - 二进制字符串转十六进制

转载 作者:IT王子 更新时间:2023-10-29 01:53:53 24 4
gpt4 key购买 nike

我有一个包含 128 个值的字符串,例如 011100010...。我想将其转换为十六进制字符串。我发现的是另一个方向:

func partHexToBin(s string) string {
ui, err := strconv.ParseUint(s, 16, 8)
if err != nil {
return ""
}

return fmt.Sprintf("%016b", ui)
}

最佳答案

您可以用另一种方式做完全相同的事情,因为 ParseInt 允许您传递数字的基数(十进制、十六进制、二进制等)

ParseInt interprets a string s in the given base (0, 2 to 36) and bit size (0 to 64) and returns the corresponding value i.

然后,一旦您将 ParseUint 调用中的基数从 16 更改为 2,您将需要更改 Sprintf 调用以将数字打印为十六进制,使用%x 格式标志。

但是请注意,使用 ParseUint 然后调用 Sprintf 可能不是最高效的解决方案。

看这个例子:

package main

import (
"fmt"
"strconv"
)

func parseBinToHex(s string) string {
ui, err := strconv.ParseUint(s, 2, 64)
if err != nil {
return "error"
}

return fmt.Sprintf("%x", ui)
}

func main() {
fmt.Println(parseBinToHex("11101"))
}

输出给

1d

随时在 Playground 上试用它

关于go - 二进制字符串转十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52172290/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com