#include #include using namespace std; #include void convstrbits( int argc, char *argv[] ) { string s; for( int i = 2; i < argc; ++i ) { int len = strlen( argv[i] ); for( int j = 0; j < len; ++j ) { char c = argv[i][j]; for( int k = 7; k >= 0; --k ) { if( c & ( 1 << k ) ) { s += '1'; } else { s += '0'; } } s += ' '; } } cout << "String: " << s << endl; } void convbitstr( int argc, char *argv[] ) { string s; for( int i = 2; i < argc; ++i ) { int len = strlen( argv[i] ); char c = 0; for( int j = 0; j < len; ++j ) { c *= 2; c |= argv[i][j] - '0'; } s += c; } cout << "String: " << s << endl; } int usage(char *name){ cerr <<"Usage: " << name << " [--b2s | --s2b] [bitstring | string]" << endl; return -1; } int main( int argc, char *argv[] ) { if( argc > 2 ) { int len = strlen( argv[1] ); len = ( len <= 3 ) ? len : 3; if( strncmp("--b2s", argv[1], len ) == 0 ) { convbitstr( argc, argv ); } else if( strncmp("--s2b", argv[1], len ) == 0 ) { convstrbits( argc, argv ); } else { usage(argv[0]); } } else { return usage(argv[0]); } }