如何在 golang 中将 uint64 转换为 big.Int?
How to convert a uint64 to big.Int in golang?
我想知道如何在 golang 中将 uint64
转换为 big.Int
?最短路线。
我试过了new(big.Int).SetInt64(int64(a uint64 number))
。
我不喜欢它,因为它太长,嵌套转换太多,如果存在内置函数,我宁愿使用它。
最短且最安全的方法是使用 Int.SetUint64()
方法:
var x uint64 = 10
i := new(big.Int).SetUint64(x)
fmt.Println(i) // Prints 10
在 Go Playground 上试用。
手动将 uint64
转换为 int64
时应小心(如您的示例所示),因为可能会发生溢出,您不会收到通知,但最终会得到一个负值。
如果您可以确定该值适合 int64
,则使用 big.NewInt()
函数会更短:
i := big.NewInt(int64(x))
在 Go Playground 上试试这个。
我想知道如何在 golang 中将 uint64
转换为 big.Int
?最短路线。
我试过了new(big.Int).SetInt64(int64(a uint64 number))
。
我不喜欢它,因为它太长,嵌套转换太多,如果存在内置函数,我宁愿使用它。
最短且最安全的方法是使用 Int.SetUint64()
方法:
var x uint64 = 10
i := new(big.Int).SetUint64(x)
fmt.Println(i) // Prints 10
在 Go Playground 上试用。
手动将 uint64
转换为 int64
时应小心(如您的示例所示),因为可能会发生溢出,您不会收到通知,但最终会得到一个负值。
如果您可以确定该值适合 int64
,则使用 big.NewInt()
函数会更短:
i := big.NewInt(int64(x))
在 Go Playground 上试试这个。