Golang vs Python-十六进制字符串到整数

时间:2019-07-05 19:05:55

标签: python go type-conversion hex

我有一个十六进制字符串:

n = "0xd458985bc81e284609dd69267c73b8464e1795d5b91ce6ed8871ecbc5b6ec4d1"  

我可以使用以下命令在python中将其转换为int

mynum = int(n,16)

我得到了很长的数字:96046857981227695367604088053507399752198003710848334588478940192231467697361

现在我将如何在Golang中做到这一点?

1 个答案:

答案 0 :(得分:3)

这是一个好问题(尽管与Flimzy发现的另一个问题类似)。主要问题是内置的整数在Go语言中最多只能增长64位,但是您可以使用math / big程序包。

fmt.Println(new(big.Int).SetString("0xd458985bc81e284609dd69267c73b8464e1795d5b91ce6ed8871ecbc5b6ec4d1", 0))

如果您没有前导0x,则以16为基数:

fmt.Println(new(big.Int).SetString("d458985bc81e284609dd69267c73b8464e1795d5b91ce6ed8871ecbc5b6ec4d1", 16))