Bit-Rechnen

Gast #11498
Lesenswert?

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
Gast #11499
Lesenswert?

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.
Gast #11500
Lesenswert?

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?
Gast #11502
Lesenswert?

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...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren