you can try flipping your own loop -
int ch1, ch2;
while ((ch1 = fgetc(fp1)) != EOF && (ch2 = fgetc(fp2)) != EOF) {
int i, dst = 0;
// assuming msb goes first
for (i=7; i>=0; i--) {
dst |= (ch1 & (1<<i)) << (2*i + 1);
dst |= (ch2 & (1<<i)) << (2*i + 0);
}
putc(dst >> 8);
putc(dst & 0xFF);
}
, , , 16 , 4 (-O3 ).
, 150 3GHz, 40 /, 2x20 /, 50 2x1000 . .