protocol-buffers - protobuf中有单字节类型吗?

标签 protocol-buffers

我找不到 proto 中是否可以有 char/byte 类型。

我可以在这里看到各种类型:

但我在那里找不到 byte 类型,甚至找不到 int16 类型。

最佳答案

不,没有固定的 1 字节类型。固定长度仅具有 4 和 8 字节变体。大多数其他数值都被编码为“varint”,其长度取决于大小(和符号,但“zigzag”在那里发挥作用)。因此,您可以将值 0-127 的字节存储在一个字节中,将 128-255 存储在两个字节中。 16 位值将占用 1 到 3 个字节,具体取决于大小(以及符号/之字形等)。

对于倍数,8位版本有“字节”,其余版本有“打包”;这避免了每个值的字段 header 的成本。

关于protocol-buffers - protobuf中有单字节类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17780300/

相关文章:

java - 应用程序启动时在 Android 中_快速_加载(反序列化)2MB 数据

protocol-buffers - 不带参数的 Protobuf RPC 服务方法

c++ - 当指针作为对方法的引用传递时,如何在 C++ 中使用 void* 来保存 uint32_t 的值

java - 使用 JMeter TCP Sampler 是否可以使用响应的第一个字节来确定消息长度

c++ - Protocol Buffer : how nested (custom) optional fields are to be handled in C++?

scala - 如何在 akka http 中序列化/反序列化 protobuf?

c++ - 从套接字转换(解析)谷歌 Protocol Buffer 流

c++ - gcc 11 版本的协议(protocol)中 undefined symbol

c# - protobuf-net List<>继承反序列化

network-protocols - protobuf-net v2 类型元