XDR формат может помочь вам в этом. Если бы мне пришлось суммировать это в одном предложении, это был бы бинарный код UTF-8 для целых чисел.
Редактировать: Как упоминалось в моем комментарии ниже, я "знаю" XDR, потому что я использую несколько функций, связанных с XDR, в моей офисной работе. Только после вашего комментария я понял, что формат "упакованного XDR", который я использую каждый день, даже не является частью официальных документов XDR, поэтому я опишу его отдельно.
Идея такова:
- проверять старший значащий бит байта.
- Если это 0, этот байт равен значению.
- если это 1, следующие три бита дают «количество байтов», то есть количество байтов в значении.
- замаскируйте верхний клочок (бит флага и число байтов), объедините соответствующее количество байтов, и вы получите значение.
Понятия не имею, является ли это «реальным» форматом или мой (бывший) коллега создал его сам (именно поэтому я не публикую код).