777 в двоичном коде: 1100001001
Гамма-код
- вычисление смещения: удаление первого 1 - 100001001
- вычислить длину: сколько бит смещения (9 бит) в унарном коде 1111111110 (девять единиц и один 0)
- сложить их вместе 1111111110100001001
VB-код
- Получить последние семь бит из двоичного кода 1100001001 is 0001001 , добавьте 1 в качестве бита "заголовка" ( 0001001 -> 10001001 ), поскольку в исходном двоичном коде еще осталось 3 бита.
- Получите оставшиеся 3 бита, на этот раз используйте 0 в качестве бита "заголовка" ( 110 -> 00000110 ), поскольку в исходном двоичном коде нет остатка
- соедините эти два байта вместе 0000011010001001 - это код VB.
В сущности, код VB разделяет пробел (в двоичном виде) на 7-битные разделы и устанавливает континуумБит / 1-й бит последнего / правого большинства 7-битовых частей в 1 и продолжения всех остальных частей в 0.