Hallo zusammen, ich hab da ein Probleme, bei dem Ihr mir hoffentlich auf die Sprünge helft... Ich muss aus einem String (char[30]) die Zeichen zuersteinmal in 8-Bit umwandeln, dass ich also anstatt Buchstaben Hexzahlen im String stehen hab. Und dann muss ich die ganzen Dinger auch noch in 7-Bit verpacken und aneinander-reihen (in 8-bit) Na ja, toll erklärt war das nicht ;-) Wer den Zweck wissen möchte oder nicht alles verstanden ht, kann ja mal versuchen, den SMS-Versand per PDU zu verstehen... Danke schon mal! Steffen
Hi, erinnert ein wenig an IntelHex. In C kannst du mit atoi ein Zeichen in den Ascii-Wert umwandeln. Den DezWert musst du dann nur noch nach Hex wandeln - sollte doch eigentlich nicht so schwer sein. Schau dir doch mal einen Quellcode von einem IntelHex (oder MotorolaHex)-Konverter an (google).... Bis dann, Ingo.
nee, is net ganz ihex. eher gar nicht... :-) allerdings machts auch grad nicht sehr viel sinn: du willst einen buchstaben in hex umwandeln? also quasi, dass er durch 2 zeichen (00 - FF) dargestellt wird? oder einfach nur, dass du zu dem buchstaben den ascii code hast?
Genau, ich brauche von den Buchstaben den Ascii-Code. Wie wandle ich die am besten um ??? Steffen
So würde ich das machen: void char2hex(unsigned char in, unsigned char* out) { unsigned char b1 = in&0x0F; unsigned char b2 = in>>4; out[0] = nibble2hex(b1); out[1] = nibble2hex(b2); } unsigned char nibble2hex(unsigned char b) { return (b<=9)?(b+'0'):(b+'a'); } ohne Garantie, da nicht getestet...
hä??? die buchstaben sind doch schon im asci code gespeichert? das macht doch keinen sinn... unsigned char x = 'a'; printf("buchstabe %c ist 0x%x in asci",x,x);
Hallo Steffen, schau dir halt einfach mal den Quellcode eines Programms an das PDU verwendet, z.B. http://www.styx.demon.co.uk/smslink/ -> smslink-0.48b-2.tar.gz -> pdu.c
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.