Hexadezimalzahl aus Dezimalzahl berechnen

Hallo,
angenommen ich habe eine Dezimalzahl (dz) mit einer beliebigen Anzahl (i) von Stellen. Diese möchte ich nun in eine Hexadezimalzahl (hz) umrechnen.
Gibt es dazu einen Algorithmus? Ich komme nicht weiter…
z.B. dz= 9876543245678907654 => hz=???

Danke für jeden Tipp
ps. die Umrechnung sollte mit möglichst nur mit den Grundrechenarten durchzuführen sein.

Auch hallo.

Hallo,
angenommen ich habe eine Dezimalzahl (dz) mit einer beliebigen
Anzahl (i) von Stellen. Diese möchte ich nun in eine
Hexadezimalzahl (hz) umrechnen.
Gibt es dazu einen Algorithmus? Ich komme nicht weiter…
z.B. dz= 9876543245678907654 => hz=???

Statt jetzt die Wikipedia oder G**gle zu fragen: http://www.elektrotechnik-fachwissen.de/tabellen/zah… & http://www.elektrotechnik-fachwissen.de/tabellen/zah… (also ex. ein Algorithmus :smile: )
…auch wenn die oben geforderte Zahl damit noch nicht umgewandelt ist…:wink:

HTH
mfg M.L.

Hallo,

zur Umrechnung muss man schon mit der gesamten Stellenzahl rechnen können, und zwar möglichst mit Ganzzahl-Arithmetik. Die rechteste Stelle ergibt sich dann mit dz mod 16, und mit der Zahl dz div 16 rechnet man in gleicher Weise weiter.

Gruss Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

angenommen ich habe eine Dezimalzahl (dz) mit einer beliebigen
Anzahl (i) von Stellen. Diese möchte ich nun in eine
Hexadezimalzahl (hz) umrechnen.
Gibt es dazu einen Algorithmus? Ich komme nicht weiter…
z.B. dz= 9876543245678907654 => hz=???

Gibt es!

Nehmen wir an, ich möchte die Zahl 16000 in eine Hexadezimalzahl umrechenen.

Wir rechnen jetzt wie in der Grundschule, d. h. Brüche und dergleichen kennen wir nicht:

16000 : 16 = 1000 Rest 0
1000 : 16 = 62 Rest 8
62 : 16 = 3 Rest 14
3 : 16 = 0 Rest 3

Nun nehme ich die Reste in umgekehrter Reihenfolge wieder auf, wobei ich die 14 natürlich als E schreibe. Voila!

16000 (dez) = 3E80 (hex)

Dieser Algorithmus klappt übrigens mit jedem Zahlensystem, z. B. dez -> bin:

16000 : 2 = 8000 Rest 0
8000 : 2 = 4000 Rest 0
4000 : 2 = 2000 Rest 0
2000 : 2 = 1000 Rest 0
1000 : 2 = 500 Rest 0
500 : 2 = 250 Rest 0
250 : 2 = 125 Rest 0
125 : 2 = 62 Rest 1
62 : 2 = 31 Rest 0
31 : 2 = 15 Rest 1
15 : 2 = 7 Rest 1
7 : 2 = 3 Rest 1
3 : 2 = 1 Rest 1
1 : 2 = 0 Rest 1

16000 (dez) = 11111010000000 (bin)

Und weil es so viel Spaß macht bin -> hex:

11111010000000 (bin) : 10000 (bin) = 1111101000 Rest 0
1111101000 : 10000 = 111110 Rest 1000 (=8)
111110 : 10000 = 11 Rest 1110 (=E)
11 : 10000 = 0 Rest 11 (=3)

1111101000000 (bin) = 3E780.

und zurück:
3E780 (hex) : A (hex) = …
(Wenn Du das Einmaleins in Hex-Zahlen kennst, ist es Dir bestimmt ein leichtes, diese Rechnung zuende zu führen :wink:)

Michael

Mist! Waren gleich zwei schneller als ich.

Zwei Tippfehler haben sich eingeschlichen: Die hex-Zahl heißt natürlich immer 3E80 (und nicht 3E780).

Hallo Klaus

Schau mal hier: http://www.coma.sbg.ac.at/~forsthof/fh/inf1_vl/prog-…

Programmiergrundlagen mit einigen Beispielen ( dez nach hex, bin nach dez usw. ).

Gruss
DiBo

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]