登录
首页 >  Golang >  Go问答

将二进制转换为十六进制

来源:stackoverflow

时间:2024-03-04 15:30:29 483浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《将二进制转换为十六进制》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

我有一个包含 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 以给定基数(0、2 到 36)和位大小(0 到 64)解释字符串 s 并返回相应的值 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 上尝试一下

终于介绍完啦!小伙伴们,这篇关于《将二进制转换为十六进制》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>