
可行的方法是使用编码/二进制,它内部完成了您上面编写的大部分工作。
(游乐场)
package mainimport ( "bytes" "encoding/binary" "fmt" "log")type Header struct { Length uint16 Size uint16 Flags uint32}func main() { header := &Header{Length: 0xC8, Size: 3, Flags: 0x100} fmt.Printf("in = %#vn", header) buf := new(bytes.Buffer) err := binary.Write(buf, binary.LittleEndian, header) if err != nil { log.Fatalf("binary.Write failed: %v", err) } b := buf.Bytes() fmt.Printf("wire = % xn", b) var header2 Header buf2 := bytes.NewReader(b) err = binary.Read(buf2, binary.LittleEndian, &header2) if err != nil { log.Fatalf("binary.Read failed: %v", err) } fmt.Printf("out = %#vn", header2)}哪些印刷品
in = &main.Header{Length:0xc8, Size:0x3, Flags:0x100}wire = c8 00 03 00 00 01 00 00out = main.Header{Length:0xc8, Size:0x3, Flags:0x100}欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)