【问题标题】:How to print the binary representation of a float in Go?如何在 Go 中打印浮点数的二进制表示?
【发布时间】:2018-10-11 02:41:23
【问题描述】:

fmt 包允许我们用 %b 打印整数的二进制表示。如何获得浮点数而不是科学记数法的等效结果?

fmt.Printf("%b", 52) // 110100
fmt.Printf("%b", 52.0) // 7318349394477056p-47

【问题讨论】:

  • 110100.0这样的小数二进制还是实际的浮点位?
  • @Ry 我一直在寻找浮点表示,但展示如何获得小数二进制也是一个好主意。

标签: go types format


【解决方案1】:

您可以使用math.Float64bitsmath.Float32bits 使用math 包获取浮点数的原始位。将此与%b 格式化动词结合使用将显示浮点数的二进制表示。

fmt.Printf("%b\n", math.Float64bits(52.0))

https://play.golang.org/p/oJKMqhsLdOA

【讨论】:

  • 谢谢!对于那些还需要从表示中获得浮点数的人,数学包为我们提供了math.Float32frombitsmath.Float64frombits
猜你喜欢
  • 1970-01-01
  • 2017-06-16
  • 2016-05-01
  • 2018-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-01
  • 1970-01-01
相关资源
最近更新 更多