【问题标题】:Store a single byte in a protobuf message在 protobuf 消息中存储单个字节
【发布时间】:2013-07-09 19:31:41
【问题描述】:

我使用什么数据类型在协议缓冲区消息中存储单个字节?查看https://developers.google.com/protocol-buffers/docs/proto#scalar 的列表,似乎*int32 类型之一是最合适的。有没有更高效的方式来存储单个字节?

【问题讨论】:

    标签: serialization protocol-buffers


    【解决方案1】:

    你需要明白无论如何它至少需要两个字节——一个用于标签,一个用于数据。 (如果字段编号很高,则标记将占用更多空间。)如果您使用uint32,则数据将占用 1 个字节(值不超过 127),而任何更大的值将占用 2 个字节。

    我认为没有比这更有效的了。

    【讨论】:

    • 为什么是 127 而不是 255?
    • @VladL:由于 varint 格式 - 每个字节的最高位实际上是一个延续位。
    猜你喜欢
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多