Скажем, у вас есть четырехбайтовое целое число, и вы хотите сжать его до меньшего числа байтов.Вы можете сжать его, потому что меньшие значения более вероятны, чем большие значения (т. Е. Вероятность значения уменьшается с его величиной).Примените следующую схему, чтобы получить результат в 1, 2, 3 или 4 байта:
Обратите внимание, что в приведенном ниже описании (биты начинаются с единицы и идут от старшего к младшему)первый бит относится к старшему значащему биту, второй бит - к следующему старшему значащему биту и т. д.)в ноль
Если n> = 128 и n <16,384, вы используете двухбайтовое целое число.Вы устанавливаете первый бит на единицу, чтобы указать, а второй бит на ноль.Затем вы используете оставшиеся 14 бит для кодирования числа n.</li> Если n> 16,384 и n <2,097,152, вы используете трехбайтовое целое число.Вы устанавливаете первый бит на один, второй бит на один, а третий бит на ноль.Вы используете оставшиеся 21 бит для кодирования n. </li> Если n> 2 097 152 и n <268 435 456, вы используете четырехбайтовое целое число.Вы устанавливаете первые три бита в один и четвертый бит в ноль.Вы используете оставшиеся 28 бит для кодирования n.</li> Если n> = 268 435 456 и n <4 294 967 296, вы используете пятибайтовое целое число.Вы устанавливаете первые четыре бита на один и используете следующие 32-битные, чтобы установить точное значение n, как четырехбайтовое целое число.Остальная часть битов не используется. </li>
Есть ли название для этого алгоритма?