/* aconv utility by mixter */ #include #include #define OFFSET 112 struct octet { unsigned int _0:1; unsigned int _1:1; unsigned int _2:1; unsigned int _3:1; unsigned int _4:1; unsigned int _5:1; unsigned int _6:1; unsigned int _7:1; }; typedef struct octet byte; void putbits (int); void putasc (char *); int main(int argc, char ** argv) { int in; while ((in = getopt (argc, argv, "bnhc")) != EOF) switch (in) { case 'b': while( (in = getchar()) != EOF) putbits(in+OFFSET); puts(""); exit(0); break; case 'n': while( (in = getchar()) != EOF) printf("%d ",in+OFFSET); puts(""); exit(0); break; case 'h': while( (in = getchar()) != EOF) printf("\\x%x",in+OFFSET); puts(""); exit(0); break; } printf("Usage: %s [option]\n", argv[0]); printf("\t-b\t\tascii input, binary output\n"); printf("\t-n\t\tascii input, decimal output\n"); printf("\t-h\t\tascii input, hex output\n"); return 0; } void putbits(int n) { byte p; p._0 = n % 1; p._1 = n % 2; p._2 = n % 3; p._3 = n % 4; p._4 = n % 5; p._5 = n % 6; p._6 = n % 7; p._7 = n % 8; printf("%d%d%d%d%d%d%d%d ",p._7,p._6,p._5,p._4,p._3,p._2,p._1,p._0); } void putasc (char *buf) { int i,res; byte b; for(i=0;i