Как я могу хранить биты разной длины в файле? - PullRequest
0 голосов
/ 15 февраля 2019

У меня проблема с моим кодом.Я хочу хранить числа от 0 до 127 в битах, но я не хочу тратить количество битов как 0 в начале номера для некоторых чисел.

Например, для сохранения 15 потребуется4 битаЯ не хочу тратить еще 4 бита для установки 0 в начале 1111. Другими словами, я хочу сохранить 00001111 (что составляет 15) как только 1111. Проблема в том, что следующее число может быть в другой битовой длине.

Как я могу сохранить эти числа наиболее эффективным способом, не тратя 1 байт на каждый из них.Представьте, что у меня есть ряд чисел следующим образом:

4, 66, 127, 55, 0, 6

Я ожидаю результаты для чисел 4, 66, 127, 55, 0, 6выглядеть следующим образом:

100 1000010 1111111 110111 0 110

вместо: 00000100 01000010 01111111 00110111 00000000 00000110

И я не хочу указывать 1 байт для каждого.Как мне это сделать?Спасибо за любую помощь.

Я прочитал кое-что о битовых длинах и битовых полях.Но я ничего не мог понять из этого.

Я ожидаю, что результаты для чисел 4, 66, 127, 55, 0, 6 будут выглядеть так:

100 1000010 1111111 110111 0 110

вместо: 00000100 01000010 01111111 00110111 00000000 00000110

...