Dezimal in hexadezimal

Dr Franke Ghostwriter
kann mir jemand verständlich erklären, wie ich eine Dezimalzahl mit Nachkommastellen in eine Heximalzahl umrechnen kann? Ich verstehe das Skript an dieser Stelle nicht und Lecturio hilft mir hier leider auch nicht weiter. Vielen Dank schon mal!
 
Fini,

ich versuche mich mal an einer Erklärung.

Aber ohne ein bisschen Mathe geht es hier leider nicht.
Auf den ersten Blick sieht es etwas wüst aus, aber wenn Du es einmal durchgerechnet hast, dann erkennst du das Prinzip und es wird beim nächsten Mal leichter.

Also fangen wir an:

Wir wollen eine Dezimalzahl in eine Hexadezimalzahl (Basis 16) umrechen.
Als Beispiel nehme ich die Dezimalzahl 423,34765625.
Die habe ich extra so gewählt, damit sie am Ende glatt aufgeht.


Am besten, man geht von oben nach unten vor:

--- VORKOMMATEIL ---

zunächst wird der ganzzahlige Anteil, also die Vorkommastellen (423) betrachtet:
Nun schaut man, wie oft die Potenzen der Basis (16) dort hinein passen.
Dabei beginnt man mit der größtmöglichen Potenz.

Die Potenzen sind
(16 ^ 3 = 4096 -> ist größer als 423, deshalb verwerfen und ebenso alle Potenzen die noch größer sind (16 ^ 4, 16 ^ 5 ...))
16 ^ 2 = 256 -> ist die erste Potenz, die ganz in 423 hineinpasst. Wie oft? genau einmal. Damit hat man schon die erste Ziffer: 1
Man zieht nun 256 * 1 von der 423 ab, es bleiben 167, womit von nun an weitergerechnet wird
16 ^ 1 = 16 -> ist die nächste Potenz, die in 167 hineinpasst. Genau 10 mal, also nächste Ziffer A (für 10)
wieder abziehen: 167 - 16 * 10 = 7. Damit wird weitergerechnet
16 ^ 0 = 1 -> passt 7 mal in die 7, also Ziffer 7
wieder abziehen: 7 - 7 = 0 -> Vorkommateil fertig!


wenn man nun die ermittelten Ziffern von oben nach unten liest, erhält man
denn ganzzahligen Anteil (Vorkommateil) als Hexadezimalzahl.
Also 1A7!

--- NACHKOMMATEIL ----------

Jetzt kommt der Nachkommateil (0,34765625).
Im Prinzip können wir so weiterrechnen wie bisher.
Die nächstkleinere Potenz ist...
16 ^ (-1) = 0,0625 -> sie passt 5 mal ganz in 0,34765625 hinein, also Ziffer 5
jetz wird wieder subtrahiert: 0,347656625 - 0,0625 *5 = 0,03515625
16 ^ (-2) = 0,00390625 -> passt genau 9 mal in 0,03515625, also Ziffer 9
wieder abziehen: 0,03515625 - 0,00390625 * 9 = 0 -> Nachkommateil fertig!

nun die Ziffern hintereinander von oben nach unten zusammenbauen
und man hat den Nachkommateil:
59

---BEIDE TEILE ZUSAMMEN ------------------

Jetzt beide Teile mit einem Komma getrennt zusammenbauen:
1A7,59
Fertig!

423,34765625d = 1A7,59h

Ich hoffe, dir damit ein wenig geholfen zu haben.

Viele Grüße
Sid
 
hier möchte ich mal einen Link teilen:
https://www.arndt-bruenner.de/mathe/scripts/Zahlensysteme.htm

Dieser Rechenweg ist etwas anders:


"Die Zahl 423,34765625 soll vom 10er-System ins 16er-System umgewandelt werden.
Ganzzahliger Anteil und Nachkommateil werden jeweils getrennt behandelt.

Zunächst die Umwandlung des ganzzahligen Teils, dann die der Nachkommastellen:


—————————————————————————————————————
Die Dezimalzahl 423 wird ins Hexadezimalsystem umgewandelt

Gehe nach folgendem Verfahren vor:
(1) Teile die Zahl mit Rest durch 16.
(2) Der Divisionsrest ist die nächste Ziffer (von rechts nach links).
Für Reste > 9 nimm die Buchstaben A, B, C, D, E, F
(3) Falls der (ganzzahlige) Quotient = 0 ist, bist du fertig,
andernfalls nimm den (ganzzahligen) Quotienten als neue Zahl
und wiederhole ab (1).

423 : 16 = 26 Rest: 7 --> Ziffer: 7
26 : 16 = 1 Rest: 10 --> Ziffer: A
1 : 16 = 0 Rest: 1 --> Ziffer: 1

Resultat: 1A7

———————————————————————————————————————
Der Dezimalbruch 0,34765625 soll ins 16er System umgewandelt werden.

Gehe nach folgendem Verfahren vor, um die Nachkommaziffern zu erhalten:
(1) Multipliziere die Zahl mit der Basis 16
(2) Die Zahl vor dem Komma ist die nächste Ziffer des Ergebnisses
(3) Schneide die Zahl vor dem Komma weg.
(4) Wiederhole ab (1), bis der Rest 0 ist, sich ein Rest wiederholt
oder die gewünschte Genauigkeit erreicht ist.

16 · 0,34765625 = 5,5625 --> Ziffer: 5
16 · 0,5625 = 9 --> Ziffer: 9

Resultat: 0,59

Zusammen mit dem bereits ermittelten ganzzahligen Anteil ergibt sich somit:

1A7,59

—erstellt durch ein Javascript von Arndt Brünner"
 
ja das stimmt.
Wenn die Zahlensysteme keine Vielfachen voneinander sind, entstehen bei der Umrechnung oft Perioden. Das ist zum Beispiel beim Umrechnen vom Dezimalsystem in ein Zweierbasiertes System (z. B. Dualsystem, Oktalsystem, Hexadezimalsystem) der Fall.
Gruß
Sid
 
Oben