| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | package mainimport (	"fmt"	"unsafe")func Float64bits(f float64) uint64 {	return *(*uint64)(unsafe.Pointer(&f))}func main() {	a := int64(1)	fmt.Println("memory pointer for var `a`", unsafe.Pointer(&a))	fmt.Println("memory size for var `a`", unsafe.Sizeof(a))	println("-------")	f := 10.11	fmt.Printf("%d\n", Float64bits(f))	fmt.Printf("%#016x\n", Float64bits(f))	fmt.Printf("%b\n", Float64bits(f))	// return	println("-------")	type Message struct {		flag1 bool		flag2 bool		name  string	}	msg := Message{		flag1: false,		flag2: false,		name:  "Neque porro quisquam est qui dolorem",	}	fmt.Println("memory size for Message struct", unsafe.Sizeof(msg))	fmt.Println(		"flag1 Sizeof", unsafe.Sizeof(msg.flag1),		"Alignof", unsafe.Alignof(msg.flag1),		"Offsetof", unsafe.Offsetof(msg.flag1),	)	fmt.Println(		"flag2 Sizeof", unsafe.Sizeof(msg.flag2),		"Alignof", unsafe.Alignof(msg.flag2),		"Offsetof", unsafe.Offsetof(msg.flag2),	)	fmt.Println(		"name Sizeof", unsafe.Sizeof(msg.name),		"Alignof", unsafe.Alignof(msg.name),		"Offsetof", unsafe.Offsetof(msg.name),	)}
 |