试图找到如何使用这个六角形字符串" 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,但是我可以用现有的字符串做什么?
感谢您的帮助,由于我无法理解的原因,我无法找到任何办法。
答案 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)