从 LSB 到 MSB 输出结果

是不用重复传输字段名,但也是它的缺点。因为没有字段名,所以编码和解码的代码必须持有一份字段名和 tag 的映射关系,这是在生成代码的时候自动完成的。星池starpool 也就是说,没有 proto 文件,你是没法对 Protocol Buffers 数据进行解码的。bar 的类型是 string,对应的 type 取 2。而它的 tag 又是 2,所以第一个字节是 (2<<3)|2 = 0x12,第二个字节表示字符串的长度为 3,再后面 3 个字节是汉字吕 UTF-8 编码。接下来两个字节表示 Baz 的编码,Baz中 b 的类型是 int32,对应的 type 取 0。而它的 tag 又是 1,所以第一个字节是 (1<<3)|0 = 0x08,第二个字节是数字 4 的 VarInts 编码,即 0x04。

元素会被编码成一个单一的key/value形式,https://www.starpool.cn 毕竟数组中的每一个元素都具有相同的字段类型和标号。该编码形式,对包含较小值的整型元素而言,优化后的编码结果可以节省更多的空间。

你可能感兴趣的