struct StringsBase *StringsBase=0L; /*#define RUN*/ #ifdef RUN long btos(o,s) register char *o; register char *s; { register long ml=256,el=0; register char *p=s,*op,c; if(o) { op=o; c=0; do { ml>>=1; if(*p=='1') c+=ml; if(ml<=1) { *op++=c; el=c; c=0; ml=256; } p++; } while(*p); *op=0; } return el; }; /* $VER: btos 0.1 MAY05 */ #endif long test(s) char *s; { long el=0,l; char o[256],os[256]; el=btos(o,s); sprintf(os,"<%s>",s); printf(" %11s ",os); sprintf(os,"<%s>",o); printf(" %16s <%c> %ld %x\n",os,el,el,el); return el; } main() { long el=0,Zahll,l=100,il; char s[1000],o[1000]; StringsBase=(struct StringsBase *)OpenLibrary("Strings.library",0); puts("btos.c"); puts("Input: Binaer OutputString LastChar Dec Hex \n"); el=test("01001000"); el=test("01000000"); puts(); StrCpy(s,"01000100011010010110010101110011001000000110100101110011"); el=btos(o,s); printf("%s\n<%s> lastchar <%c> dec %ld hex %x\n",s,o,el,el,el); StrCpy(s,"011101000010000001100010011101000110111101110011"); el=btos(o,s); printf("%s\n<%s> lastchar <%c> dec %ld hex %x\n",s,o,el,el,el); if(StringsBase) CloseLibrary(StringsBase); return el; } /* END */ /* btos.c Input: Binaer OutputString LastChar Dec Hex <01001000> 72 48 <01000000> <@> <@> 64 40 01000100011010010110010101110011001000000110100101110011 lastchar dec 115 hex 73 011101000010000001100010011101000110111101110011 lastchar dec 115 hex 73 */