...und schon wieder ich hab ne Zeichenkette z.B. String "500040C90...." Bei den Zeichen 0C handelt es sich um eine Hex Zahl (d12). Jetzt möchte ich die Hex 0C nach "kette" kopieren. Beispiel: int k;i; char kette[3]; i=5; //sollte die 0 von 0C sein kette[k]=string[i]; k++;i++; kette[k]=string[i]; Jetzt hoffe ich,daß in dem String "Kette" 0C steht. Nun steht ja i auf C vom string und ich möchte i jetzt um 12 stellen erhöhen. Wie stell ich es am besten an? Er erhöht mir immer i um 67. Ist ja ein "C" aber soll ja hex C sein. Gruß Helge
Hat denn keiner ne Idee? Hab jetzt erst mal das eingelesene "C" mit 55 subtrahiert. Geht auch erst mal. Aber nur von Hex A bis F.
//----------------------------------------------------------- char gethex(char *s) { char h,l; h = s[0] - '0'; l = s[1] - '0'; if(h>9) h -= 7; if(l>9) l -= 7; return h*16+l; } i = gethex(kette[k-1]); kommst klar? Reiner
Hallo Reiner Vielen Dank für den Tip.Gestern hat´s mich recht früh entschärft.Hab die ganze Woche bis nachts gesessen. Das probiere ich heute gleich mal aus. Gruß Helge
Hallo Reiner Komm irgendwie nicht klar :-)))) das hier hab ich reingebastelt: int k; j=0; s[j]=rx_buffer[i];j++;i++;s[j]=rx_buffer[i]; //kopiert 07 nach s (als zeichen ---also 55--- jetzt kommt deins: (hab ich bestimmt falsch gemacht) char gethex(char *s) { char h,l; h = s[0] - '0'; l = s[1] - '0'; if(h>9) h -= 7; if(l>9) l -= 7; return h*16+l; } k = gethex(&s[j-1]); jetzt sollte in k eine 7 stehen Vielleicht kannst du mir ja mal auf die Sprünge helfen. Gruß Helge
stelle das Programm von mir über main. Und verwende in Deinem Teil den Aufruf k = gethex(&s[j-1]); Dann sollte es gehen. Gethex ist ein Unterprogramm und muß vor dem main deklariert sein. Reiner char gethex(char *s){ char h,l; h = s[0] - '0'; l = s[1] - '0'; if(h>9) h -= 7; if(l>9) l -= 7; return h*16+l; } void main(void){ // hier kommt Dein main int k; j=0; s[j++]=rx_buffer[i++]; s[j]=rx_buffer[i]; //kopiert 07 k = gethex(&s[j-1]); }
Hi Reiner Bin leider erst jetzt dazu gekommen. Bin begeistert,es funktioniert!!!! Vielen Dank Gruß Helge
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.