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

如何使用go将十六进制转换为整数,go,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 Hexa值为:

我使用下面提到的代码,使用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 
Hexa值为:0x340aad21b3b700000

但引发错误:strconv.ParseUint:解析340aad21b3b700000:值超出范围


您可以建议任何替代解决方案。

uint64的最大值为0xFFFF FFFF FFFF,因此要使用溢出值,您必须求助于标准库的package math/big:

import "math/big"

...

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

继续使用包。

uint64的最大值为0xFFFF FFFF FFFF FFFF,因此要使用溢出值,您必须求助于标准库的包数学/大:

import "math/big"

...

n := new(big.Int)
n.SetString(numberStr, 16)
继续打包