Einzelnen Beitrag anzeigen

mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#4

AW: Array to Bin / Bin to Array

  Alt 17. Jun 2017, 12:28
feinstes "C"..

na warum dann nicht "i=atoi(pa)" und "pa=itoa(i)" oder "sscanf(&dat[0],"%03d",&i) und sprintf(&dat[0],"%03d",i) ?

(ich würde dir aber den Tip geben, mit einem lokalem Zusatzpuffer zu arbeiten, der die 3 Zeichen "Null-terminiert" drin hat(also ein Byte länger ist) und dann mit "strncpy" auslesen und mit "memcpy" zurückschreiben... eben so wie man es in "C" immer tut )


ansonsten wenn es immer ASCII dezimal 3stellig mit führend "0" ist geht es auch so sehr effektiv "in feinstem C":

int i;
i=(int)(dat[0]&0x0f)*100 + (int)(dat[1]&0x0f)*10 + (int)(dat[2]&0x0f);
i= 481 * i + 171;
dat[0]=0x30 + ((i/100)%10);
dat[1]=0x30 + ((i/10)%10);
dat[2]=0x30 + (i%10);

wenn das Result auch nur 3 stellig sein darf, klappt das aber nur für "i=0" und "i=1" weil es ab Input "i>=2" im Result mehr wie 3stellig wird !?
... bist du dir sicher, die Aufgabe hier korrekt und vollständig beschrieben zu haben?

Geändert von mensch72 (17. Jun 2017 um 12:40 Uhr)
  Mit Zitat antworten Zitat