| imho.ws |
![]() |
|
|
|||||||
|
Сообщения:
Перейти к новому /
Последнее
|
Опции темы |
|
|
# 2 |
|
Newbie
Регистрация: 14.10.2003
Сообщения: 25
![]() |
Вообще размер файла всегда кратен 8 битам, поэтому при сжатии лучше всего где-нибудь в заголовке прописать точное количество "значимых" битов в последнем байте файла.
// считать бит из файла infile BYTE GetBit() { static BYTE This; static int count = 8; BYTE bit; if(count == 8) { This = fgetc(infile); count = 0; } bit = (This>>count) & 1; count++; return bit; } // записать бит в файл outfile void PutBit(BYTE bit) { static BYTE This; static int count = 0; This |= bit<<count; count++; if(count == 8) { fputc(This, outfile); count = 0; This = 0; } } |
|
|