записать в файл побайтово
Пишу арифметическое кодирование на с++, для работы с большими числами написала свой LongDouble, который представляет число в виде строки. (т.е "0.5936..."). Мне нужно это число записать побайтово в файл. Подскажите, как это можно сделать?
Ответы (1 шт):
Автор решения: qwerty
→ Ссылка
Наверное проще всего сжимать цепочки десятичных цифр (длинные числа), упаковывая в один байт 2 цифры (по 4 бита на цифру. '0' - 0x1, '1' - 0x2, ... '9' - 0xa, '-' - 0xb (думаю, + хранить не нужно)). Двоичный ноль будет терминатором. Когда пишите в файл, то длина вам известна и можно использовать fwrite. Чтение и распаковку делаете в цикле, вызывая fgetc и анализируя прочитанный символ.