Forum: Mikrocontroller und Digitale Elektronik Hex in Binär umwandeln "C"


von Felix (Gast)


Lesenswert?

Hallo an alle,

ich habe folgendes Problem:

Und zwar müsste ich in C ein Programm schreiben. Ich empfange über 
TCP/IP einen String (zb. 0x000F). Diesen String möchte ich in einen 
"Binär"-String umwandeln:

"0x000F" = "0000000000001111"

Wie kann ich es hin bekommen das das "F" in --> "1111" umgewandelt wird?

Danke für eure Antworten!

von Helmut L. (helmi1)


Lesenswert?

Felix schrieb:
> Wie kann ich es hin bekommen das das "F" in --> "1111" umgewandelt wird?

Schau dir mal den Befehl ltoa oder itoa an. Da kann man den Radix mit 
angeben.

http://www.kev.pulo.com.au/pp/RESOURCES/cplusplus/ref/cstdlib/ltoa.html

von Kaj (Gast)


Lesenswert?

mit den Funktionen
1
atoi
 oder mit
1
strtol
Letzere funktion (sollte) bevorzugt werden.

von Karl H. (kbuchegg)


Lesenswert?

Wenn du auf die führenden 0-en stehst, dann gibts 3 Möglichkeiten:
* du kannst das "händisch" machen.
  Eine Tabelle mit 16 Strings. Aus der Zahl jeweils eine Hex-Ziffer
  abspalten und die dann als Index in diese Tabelle nehmen. Die
  Einzelstrings mit strcat/strcpy zusammensetzen
* durchdividieren (durch 2), so wie man eben eine Zahlenausgabe macht
  und die einzelnen Ziffern in Characterform gleich an der richtigen
  Stelle im String einsetzen.
* ltoa und dann hinten nach an den erhaltenen String entsprechend
  viele führende 0-en anfügen um wieder die gewünschte Bitzahl zu
  erreichen.

von Felix (Gast)


Lesenswert?

Ich könnte auch eine 1 Byte grosse Hexadezimalzahl nehmen und in die 8 
Bits aufteilen und dann weiter verwenden.
Wie würde ich das machen?
Danke sehr!

von spontan (Gast)


Lesenswert?

>Wie würde ich das machen?

Wie Du das machen würdest weis ich nicht, aber wie ichs machen würde. 
Komm, etwas nachdenken hat noch niemanden geschadet.

von Udo S. (urschmitt)


Lesenswert?

Hausaufgaben?

Karl Heinz hats doch praktisch vor vorgekaut.



Felix schrieb:
> Ich könnte auch eine 1 Byte grosse Hexadezimalzahl nehmen und in die 8
> Bits aufteilen und dann weiter verwenden.
> Wie würde ich das machen?
> Danke sehr!

???? Liest du auch mal durch was du schreibst?

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.