go 數字和 []byte 相互轉換


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

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM