登录
首页 >  Golang >  Go问答

如何使用 go 将十六进制转换为整数

来源:stackoverflow

时间:2024-04-09 20:06:37 341浏览 收藏

小伙伴们对Golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《如何使用 go 将十六进制转换为整数》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!

问题内容

我使用下面提到的代码使用 go 将十六进制值转换为十进制

numberStr := strings.Replace(s, "0x", "", -1)
    numberStr = strings.Replace(numberStr, "0X", "", -1)
    n, err := strconv.ParseUint(numberStr, 16, 64)
    if err != nil {
        panic(err)
    }
    return n

十六进制值为:0x340aad21b3b700000

但抛出错误:strconv.parseuint:解析“340aad21b3b700000”:值超出范围

您能建议任何替代解决方案吗?


解决方案


uint64 的最大值是 0xffff ffff ffff ffff,因此要使用溢出值,您必须求助于标准库的 math/big 包:

import "math/big"

...

n := new(big.Int)
n.SetString(numberStr, 16)

继续使用包 documentation

以上就是《如何使用 go 将十六进制转换为整数》的详细内容,更多关于的资料请关注golang学习网公众号!

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