显示巨大的六角形字符串的基数10表示?

时间:2016-10-18 20:49:26

标签: go

试图找到如何使用这个六角形字符串" 58068906d6194c6cbda7a6df"进入它的基础10表示。

我试过这个:

i, err := strconv.Parse("58068906d6194c6cbda7a6df", 16, 64)

显然我收到此错误:parsing "58068906d6194c6cbda7a6df"; value out of range

我还需要采用基数为10的字符串表示,并在经过一些处理后得到这个六进制值。即:

base10 := "58068906d6194c6cbda7a6df" => to base 10 string some processing hexa := base10 => to base 16 string

我可以使用fmt套餐来取消基础10吗?我知道显示基数10的六边形我可以使用%x,但是我可以用现有的字符串做什么?

感谢您的帮助,由于我无法理解的原因,我无法找到任何办法。

1 个答案:

答案 0 :(得分:3)

您的十六进制值大于int64可以容纳的值,因此您必须使用big.Int

https://play.golang.org/p/OPPL43u6nB

i := new(big.Int)
i.SetString("58068906d6194c6cbda7a6df", 16)
fmt.Println(i)

要从big.Int获取十六进制字符串表示形式,您可以使用Text方法:

hex := i.Text(16)