2018-04-10 12:46
浏览 723


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.

图片转代码服务由CSDN问答提供 功能建议

我想知道如何将 uint64 转换为 big.Int < / code>在golang中? 最短的方法。

我尝试了 new(big.Int).SetInt64(int64(uint64数字))


  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • doudongfu8006 2018-04-10 13:01

    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.

    打赏 评论

相关推荐 更多相似问题