Golang encoding.binary 包详解
encoding/binary
包实现了对基本数据类型的二进制编码和解码。这个包提供了两个函数 Write
和 Read
用于处理二进制数据。
以下是使用 encoding/binary
包的一些示例:
写入二进制数据
package main
import (
"bytes"
"encoding/binary"
"fmt"
)
func main() {
var buf bytes.Buffer
values := []int64{0x1A2B3C4D5E6F, 0x1F2E3D4C5B6A}
for _, value := range values {
err := binary.Write(&buf, binary.LittleEndian, value)
if err != nil {
fmt.Println("binary.Write failed:", err)
}
}
fmt.Println(buf.Bytes()) // 输出写入的字节
}
读取二进制数据
package main
import (
"bytes"
"encoding/binary"
"fmt"
)
func main() {
buf := bytes.NewBuffer([]byte{0x6F, 0x5E, 0x4C, 0x3B, 0x2A, 0x19, 0x08, 0x01})
var value int64
err := binary.Read(buf, binary.BigEndian, &value)
if err != nil {
fmt.Println("binary.Read failed:", err)
} else {
fmt.Printf("Read value: %X\n", value) // 输出读取的值
}
}
binary.Write
和 binary.Read
函数分别用于将 Go 的值写入 Writer 接口实现的目标或者从 Reader 接口实现的源读取数据。binary.LittleEndian
和 binary.BigEndian
用于指定字节序,即数据在内存中是以大端序还是小端序存储。
评论已关闭