Для формата сериализации/протокола я должен кодировать беззнаковые числа вплоть до беззнакового 64-битного целого числа компактным способом, который должен быть простым в реализации (это означает, что я не ищу специальный алгоритм сжатия). Я думал о следующем:
if n<128
take bits 0..6 for representing n, set overflow bit 7 to 0
store one byte
if n>=128 and n<16384
take bits 0..6 of byte 1 as bits 0..6 of n, set overflow bit 7 of byte 1 to 1
take bits 0..6 of byte 2 as bits 7..13 of n, set overflow bit 7 of byte 2 to 0
store byte 1 followed by byte 2
if n>=16384 and n<2^21
...set overflow bit 7 of byte 2 to 1... (and so on)
У меня есть два вопроса по этому поводу:
Как называется этот формат? Где посмотреть реализации?
Это для двоичного протокола, который будет отправляться через сокеты, где очень часто будут отправляться небольшие числа ‹128. Как вы думаете, стоит ли дополнительная обработка?