struct StringsBase *StringsBase=0L; /*#define RUN*/ #ifdef RUN long btol(s) register char *s; { register long ml=0,ll=1,el=0; register char *p=s; if(*p) { do ml++; while(*p++); p--; p--; ml--; do { if(*p=='1') el+=ll; p--; ll<<=1; ml--; } while (ml); } return el; } #endif long test(s) char *s; { long el=0; printf("%-33s %9x %ld \n",s,btol(s),btol(s)); return el; } main() { long el=0,Zahll,l=100,il; char s[256]; StringsBase=(struct StringsBase *)OpenLibrary("Strings.library",0); puts("Input: Binaer Output: Hex Decimal \n"); el=test(""); el=test("a"); el=test("0"); el=test("1"); el=test("01"); el=test("001"); el=test("0010"); el=test("11"); el=test("011"); el=test("1001"); el=test("01001"); el=test("01111"); el=test("00000000000000000000000010000001"); el=test("00000000000000000000000011111111"); el=test("00000000000000001111111111111111"); el=test("11111111111111110000000000000000"); el=test("00001111000011110000111100001111"); el=test("11110000111100001111000011110000"); el=test("00110000001100000011000000110000"); el=test("11000000110000001100000011000000"); el=test("00000011000000110000001100000011"); el=test("11111111111111111111111111111111"); el=test("11111111111111111111111111111110"); el=test("01000000000000000000000000000000"); el=test("10000000000000000000000000000000"); el=test("11000000000000000000000000000000"); el=test("11110000000000000000000000000000"); el=test("00001111111111111111111111111111"); if(StringsBase) CloseLibrary(StringsBase); return el; } /* END */ /* Input: Binaer Output: Hex Decimal 0 0 a 0 0 0 0 0 1 1 1 01 1 1 001 1 1 0010 2 2 11 3 3 011 3 3 1001 9 9 01001 9 9 01111 F 15 00000000000000000000000010000001 81 129 00000000000000000000000011111111 FF 255 00000000000000001111111111111111 FFFF 65535 11111111111111110000000000000000 FFFF0000 -65536 00001111000011110000111100001111 F0F0F0F 252645135 11110000111100001111000011110000 F0F0F0F0 -252645136 00110000001100000011000000110000 30303030 808464432 11000000110000001100000011000000 C0C0C0C0 -1061109568 00000011000000110000001100000011 3030303 50529027 11111111111111111111111111111111 FFFFFFFF -1 11111111111111111111111111111110 FFFFFFFE -2 01000000000000000000000000000000 40000000 1073741824 10000000000000000000000000000000 80000000 -2147483648 11000000000000000000000000000000 C0000000 -1073741824 11110000000000000000000000000000 F0000000 -268435456 00001111111111111111111111111111 FFFFFFF 268435455 */