Мне было интересно, почему вам пришлось менять местами байты в Trift CompactProtocol при кодировании Ints с переменной длиной.
Пример взят из Приложения с интенсивным использованием данных (онлайн, стр. 120):
Number in Base 10 to be encoded: 1337
1337 in Base 2: 0010100 111001
Encoding first byte: 1|111011|0
Encoding second byte: 0|0010100
Как вы видите, байты были поменяны местами.Почему это так?
Дополнительная информация: Первый бит в первом байте означает, что впереди еще один байт.Последний бит в первом байте представляет знак (в данном случае положительный).Первый бит в последнем знаке означает, что больше нет байтов, принадлежащих этому номеру.