Запись файлов в разрядной форме в файл в C

Я думаю, что это будет работать в (непроверенном) Java:

enum A{B.values()}
enum B{A.values()}

Должен переполниться в статической инициализации, прежде чем это даже получит шанс перестать работать из-за отсутствия основных (Строка []).

10
задан A-Sharabiani 22 March 2018 в 15:05
поделиться

1 ответ

Собирайте биты, пока не получите достаточно битов, чтобы заполнить байт и затем записать его ..

Например, что-то вроде этого:

int current_bit = 0;
unsigned char bit_buffer;

FILE *f;

void WriteBit (int bit)
{
  if (bit)
    bit_buffer |= (1<<current_bit);

  current_bit++;
  if (current_bit == 8)
  {
    fwrite (&bit_buffer, 1, 1, f);
    current_bit = 0;
    bit_buffer = 0;
  }
}

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

void Flush_Bits (void)
{
  while (current_bit) 
    WriteBit (0);
}
19
ответ дан 3 December 2019 в 20:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: