如何使用go将十六进制转换为整数
我使用下面提到的代码,使用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值为:
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)
继续打包