1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
#include <stdio.h>
/* 0 | 1 */
#define DBG 0
#define FNAME "data_in.txt"
int main (void)
{
FILE *fp = fopen (FNAME, "r");
if (fp != NULL)
{
unsigned char tab[(165 / 8) + 1];
size_t i_bit = 0;
size_t i_oct = 0;
unsigned oct = 0;
int c;
while ((c = fgetc (fp)) != EOF && i_oct < sizeof tab)
{
unsigned bit = c - '0';
#if DBG
printf ("%u:", bit);
#endif
oct |= (bit << i_bit);
#if DBG
printf (" %02X\n", oct);
#endif
i_bit++;
if (i_bit == 8)
{
i_bit = 0;
tab[i_oct] = oct;
i_oct++;
oct = 0;
#if DBG
printf ("\n");
#endif
}
}
#if DBG
printf ("\n");
printf ("\ni_bit = %u\n", i_bit);
printf ("\ni_oct = %u\n", i_oct);
#endif
{
size_t i;
for (i = 0; i < sizeof tab; i++)
{
printf ("%02X ", tab[i]);
}
printf ("\n");
}
}
else
{
perror (FNAME);
}
return 0;
} |
Partager