代码如下:
package main
import (
"fmt"
"unsafe"
)
func main() {
var f float64 = 1.0
fmt.Println(Float64bits(f))
}
func Float64bits(f float64) uint64 {
return *((*uint64)(unsafe.Pointer(&f)))
}
结果如下:
$ go run main.go
4607182418800017408
疑问:
为啥结果不是1,而是那么大的一个数字呢?