Forum: Mikrocontroller und Digitale Elektronik Suche C-Funktion DEZ --> HEX umwandeln


von Mike (Gast)


Lesenswert?

Hallo!

Weiss jemand wo ich eine Funktion finde, mit der ich einen Dezimal Wert
in einen HEX Wert wandeln kann? (Programmierung CODEVISIONAVR)

Vieln Dank!

von Mike (Gast)


Lesenswert?

bzw. von HEX in DEZ.

von Tobi (Gast)


Lesenswert?

ganz sicher willst du von binär in irgendetwas umwandeln, denn für uP
aller art gibt es nur binär werte.
benutz mal die suche zum thema bcd, sonst ist 5 einträge unter diesem
das genau gleiche thema...

von Mike (Gast)


Lesenswert?

Hallo Tobi!

Was meinst du mit binär?
Ich möchte z.B. nur einen Dezimalwert 16 umwandeln,
so dass der Hexwert 10 umgerechnet wird.

von Zotteljedi (Gast)


Lesenswert?

Er meint, daß der Prozessor sowieso nur binäre Zahlen sieht, was
dezimal, oktal oder hexadezimal ist, ist die Repräsentation in Ziffern,
die als Benutzerschnittstelle dient.

0x20, 32 und 040 sind alles die gleiche Zahl, nur unterschiedliche
Darstellungen.

Je nachdem was Du willst, ist eine der printf-Ausführungen vielleicht
eine Hilfe. Ein strtol und strtoul kann für die Gegenrichtung auch
Zahlendarstellungen zu beliebiger Basis (bis 36 IIRC) annehmen und eine
Zahl im Sinne der CPU daraus machen.

Das ganze ist aber auch g'schwind selbst programmiert, wenn man mal
ein paar Minuten drauf verschwendet zu überlegen, wie man denn selbst
umrechnet. Das ist durch ganzzahlige Division und Modulo eine Sache von
einer Schleife, einem Array, zwei oder drei Indizes oder ein paar
Zeigern. Vor allem aber ist es weniger widerlich als der ganze
Overhead, der bei einer sprintf-Kaskade anläuft.

von Zotteljedi (Gast)


Angehängte Dateien:

Lesenswert?

Mich juckt's ja immer in den Fingern sowas möglichst kompakt zu lösen.
Wer sich um den Lernspaß des Selberfindens bringen möchte, der kann
sich meine Lösung ansehen, die einen int zu einer ASCII-Darstellung zu
den Basen 2..16 verwurstet und im Dezimal-Fall das Vorzeichen
berücksichtigt (also die gleichen Ausgaben wie %o %i %x erzeugt).

Getestet auf i386 mit gcc! Ich nehme aber mal an, daß das überall
gleich laufen wird, zumindest sind keine fiesen Tricks drin.

Für diejenigen, die das hier per Foren-Suche gefunden haben (ich glaube
noch immer daran) und es nicht bemerkt haben: die Umkehrrichtung ist
strtol bzw. strtoul, und diese sind Bestandteil der Standardbibliothek.

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.