2016-10-18 15 views
0

試圖找到如何將此六進制字符串「58068906d6194c6cbda7a6df」放入其基本10表示形式。顯示基地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包dislpay基地10?我知道顯示基地10的十六進制可以使用%x,但我可以用現有的字符串做什麼?

感謝您的幫助,由於我無法理解的原因,我無法找到任何方式來做到這一點。

回答

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)