/* swap each pair of bits; read from stdin, write to stdout */ /* usage: swapbits < somefile > somefile.swapped-bits */ /* swapbits < somefile.swapped-bits > somefile */ /* ari edelkind (08/19/2001) */ /* last modified 08/19/2001 */ #include #include #define BS 8192 int main(void) { char buf[BS]; int size, len; char ibyte; char obyte; while (1) { len = size = read (0, buf, BS); if (size < 0) _exit (1); if (!size) _exit (0); while (size--) { ibyte = buf[size]; /* 0x55 == 01010101 */ /* 0xAA == 10101010 */ obyte = (ibyte & 0x55) << 1; obyte |= (ibyte & 0xAA) >> 1; buf[size] = obyte; } size = write (1, buf, len); if (size < 0) _exit (1); if (!size) _exit (0); } return 0; }