Есть один-байтовый тип в protobuf? - программирование
Подтвердить что ты не робот

Есть один-байтовый тип в protobuf?

Я не могу найти, возможно ли иметь char/byte type в proto.

Здесь я вижу различные типы:

но я не могу найти тип байта и даже типы int16.

4b9b3361

Ответ 1

Нет, нет фиксированного 1-байтового типа. Фиксированная длина имеет только 4 и 8 байтов. Большинство других числовых значений кодируются как "varint" s, которые являются переменной длиной в зависимости от величины (и знака, но там играет "зигзаг" ). Таким образом, вы можете хранить байты со значением 0-127 в одном байте и 128-255 в двух байтах. 16-разрядные значения будут занимать от 1 до 3 байтов в зависимости от величины (и знака/зигзага и т.д.).

Для краткости существует "байты" для 8-битной версии и "упакованы" для остальных; это позволяет избежать затрат на заголовок поля на значение.