// ByteOrder规定了如何将字节序列和 16、32或64比特的无符号整数互相转化。
type ByteOrder interface {
Uint16([]byte) uint16
Uint32([]byte) uint32
Uint64([]byte) uint64
PutUint16([]byte, uint16)
PutUint32([]byte, uint32)
PutUint64([]byte, uint64)
String() string
}
// 大端字节序实现
var BigEndian bigEndian
// 小端字节序实现
var LittleEndian littleEndian
package main
import (
"encoding/binary"
"fmt"
)
func main() {
var num uint64
num = 0x1234
fmt.Printf("num = %x\n", num)
enc := make([]byte, 8)
// 转化为大端
binary.BigEndian.PutUint64(enc, num)
fmt.Printf("bigendian enc = %x\n", enc)
// 转化为小端
binary.LittleEndian.PutUint64(enc, num)
fmt.Printf("littleendian enc = %x\n", enc)
}
num = 1234
bigendian enc = 0000000000001234
littleendian enc = 3412000000000000
本文介绍了Go语言中的encoding/binary包,通过示例展示了如何将数字1234编码为大端和小端字节序列。

310

被折叠的 条评论
为什么被折叠?



