#include #include /* * Diese Funktion gibt einen positiven 32Bit Integer * in Binardarstellung aus. * * Bsp.: * 511 => 00000000 00000000 00000001 11111111 * */ void print_bin_long(unsigned long int a) { unsigned long int high_one = 2147483648; //2^31 short int i; for( i = 0; i < 32; i++ ) { if( a & high_one ) { printf("1"); } else { printf("0"); } if( (i == 7) || (i == 15) || (i == 23) ) { printf(" "); } a <<= 1; } printf("\n"); } /* * Kompilieren mit: gcc -Wall -std=c99 crypt.c -o crypt * Aufruf: ./crypt < test_crypt_1.txt * */ int main () { char ch = 0; unsigned short int n = 0; unsigned long int number = 0; //Zeichenweise einlesen while ( (ch = getchar()) != EOF ) { //Beim erste der vier Zeichen nicht shiften if( n == 0 ) { number = ch; } //Das Byte verschieben (8 Bit) else { number = (number << 8) + ch; } n++; //Immer vier Zeichen if (n == 4) { printf("%lu ", number); n = 0; } } //Die letzten Zeichen nicht vergessen! if( n > 0 ) { printf("%lu ", number); } printf("\n"); return 0; }