Forum: Mikrocontroller und Digitale Elektronik Bit-Rechnen


von Steffen Z. (Gast)


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

von Ingo B. (Gast)


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.

von Jonas (Gast)


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?

von Steffen Z. (Gast)


Lesenswert?

Genau, ich brauche von den Buchstaben den Ascii-Code.
Wie wandle ich die am besten um ???

Steffen

von Kai_ (Gast)


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

von Jonas (Gast)


Lesenswert?

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);

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

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

von Steffen Z. (Gast)


Lesenswert?

Klasse, danke für den Tip (Link) !
Steffen

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
Noch kein Account? Hier anmelden.