如何在Golang中将uint64转换为big.Int?
I was wondering how can I convert a uint64
to big.Int
in golang? the shortest way.
I have tried new(big.Int).SetInt64(int64(a uint64 number))
.
I don't like it cause it's long, too much nested conversions and I'd rather use a built-in function if it exists.
我想知道如何将 我尝试了 我不喜欢它,因为它需要很长的嵌套转换,如果存在,我宁愿使用内置函数。 p>
div> uint64 code>转换为
big.Int 在golang中? 最短的方法。 p>
new(big.Int).SetInt64(int64(uint64数字)) code>。 p>
Shortest and safest would be to use the Int.SetUint64()
method:
var x uint64 = 10
i := new(big.Int).SetUint64(x)
fmt.Println(i) // Prints 10
Try it on the Go Playground.
Care should be taken when manually converting uint64
to int64
(as in your example), as overflow might happen which you won't be notified about, but you will end up with a negative value.
If you can be sure the value fits into an int64
, using the big.NewInt()
function is shorter:
i := big.NewInt(int64(x))
Try this one on the Go Playground.