本文介绍: encoding/binary包相对于效率更注重简单。 如果需要高效的序列化,特别是数据结构较复杂的,可以选择更高级的解决方案**, 例如encoding/gob包(Go语言自带的数据编码解码工具包),或者采用ProtocolBuffer(跨语言)。
golang常用库之- encoding/binary包 | 字节转换成整形、整形转换成字节、“大字端” 和 “小字端”
背景和使用场景
Go编程的三十六个套路: int与[]byte互转用于数据传输
参考URL: https://blog.frognew.com/2016/03/go–guide–encoding–binary.html
在用Go进行数据传输的场景下,例如文件传输或文件存储时,需要将Go的数据例如int转换为[]byte。 得到的[]byte可以进一步在网络上传输或写入到文件中。这个场景需要借助go标准库中的encoding/binary包来实现。
变长值是使用一到多个字节编码整数的方法,绝对值较小的数字会占用较少的字节数。这个在ProtocolBuffer的编码文档中有详细说明。
encoding/binary包相对于效率更注重简单。 如果需要高效的序列化,特别是数据结构较复杂的,可以选择更高级的解决方案, 例如encoding/gob包(Go语言自带的数据编码解码工具包),或者采用ProtocolBuffer(跨语言)。
使用encoding/binary包可以实现序列化和反序列化功能:
go语言socket通信中大小端转换问题
encoding/binary包
Go语言自定义二进制文件的读写操作
字节转换成整形、整形转换成字节
代码demo
小字端” 和 “大字端”
计算机字节序和网络字节序
对于网络传输,使用的就是大字端。为什么?
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。