当前位置:   article > 正文

Google ProtoBuf入门_protobuf 大小端

protobuf 大小端

Github
开发者文档
Proto3语法规则
苦逼的发现以前有些自己的总结类文件居然没了。。心塞塞。还是上云比较安全。。。

写在前面

Google ProtoBuf 是Google自己推出的一种序列化编码方式。
rotobuf是google推出的数据交换格式,相比xml、json主要优势在传输数据量更小、解析更快。它自带了一个编译器,可以编译成JAVA、python、C++代码。
采用的Google自己推行的Base 128 Varints编码

Base 128 Varints 编码

Varint是一种使用一个或多个字节序列化整数的方法。较小的数字占用较少的字节数。
除了最后一个字节外varint中的每个字节都设置了最高有效位(msb)–这表明还会有其他字节。每个字节的低7位用于以7位为一组存储数字的二进制补码表示,最低有效组在前。(按16进制,超过0x80表示下字节仍属于该数据)

如何理解【最低有效组在前】?需要先了解计算机的大端序(Big-endian)和小端序(Little-endian),这个可以自行百度

varints编码栗子

数字1的编码

0000 0001 //这里是数字1 –它是1个字节,因此未设置msb~
  • 1

数字100的编码

0110 0100  //这里是数字100 –它是1个字节,因此未设置msb~
  • 1

数字256


                
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/720050
推荐阅读
相关标签
  

闽ICP备14008679号