S
static int bit7[] = {
64,163,36,165,232,233,250,236,242,199,10,216,
248,13,197,229,63,95,63,63,63,63,63,63,63,63,
63,63,198,230,223,202,32,33,34,35,164,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,161,65,66,67,
68,69,70,71,72,73,74,75,76,77,78,79,80,
81,82,83,84,85,86,87,88,89,90,196,214,209,
220,167,191,97,98,99,100,101,102,103,104,105,
106,107,108,109,110,111,112,113,114,115,116,
117,118,119,120,121,122,228,246,241,252,224 };
void B8ZuB7(short *binary, char *message, short n) {
int i,j,k;
int potenz;
j=7;
for(i=k=0; i<n; ++i, ++k) {
if(j==-1) {
j=7;
potenz=(int)pow(2.0,j)-1;
i ? --i : 0;
message[k]=binary[i] & potenz;
}
else
potenz=(int)pow(2.0,j)-1;
message[k]=(binary[i-1]>>(j+1) ) | ((binary[i] & potenz)<<(7-j));
--j;
}
for(i=0; i<n; ++i)
message[i]=bit7[message[i]];
message[n]='\0';
}
Also du liest die Datei mit fgetc aus und speicherst die 8Byte Werte in ein
short Array. Dieses Shortarray übergibst du als ersten param danach dein Zeil-
array für die 8Bit Zeichen und am ende noch die anzahl der short array elemente.