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