package main
import (
"bytes"
"encoding/binary"
"fmt"
)
func main() {
var i1 int64 = 511 // [00000000 00000000 ... 00000001 11111111] = [0 0 0 0 0 0 1 255]
s1 := make([]byte, 0)
buf := bytes.NewBuffer(s1)
// 數字轉 []byte, 網絡字節序為大端字節序
binary.Write(buf, binary.BigEndian, i1)
fmt.Println(buf.Bytes())
// 數字轉 []byte, 小端字節序
buf.Reset()
binary.Write(buf, binary.LittleEndian, i1)
fmt.Println(buf.Bytes())
// []byte 轉 數字
s2 := []byte{6: 1, 7: 255} // [0 0 0 0 0 0 1 255]
buf = bytes.NewBuffer(s2)
var i2 int64
binary.Read(buf, binary.BigEndian, &i2)
fmt.Println(i2) // 511
s3 := []byte{255, 1, 7:0} // [255 1 0 0 0 0 0 0]
buf = bytes.NewBuffer(s3)
var i3 int64
binary.Read(buf, binary.LittleEndian, &i3)
fmt.Println(i3) // 511
}