Vor einigen Tagen habe ich erklärt, wie man am besten IP’s in einer MySQL Datenbank speichert, und dies genaustens erklärt, indem ich die Zahl in Hexadezimale Zahlen umgerechnet habe, und später dann in wieder in eine Dezimale. Wie das im Groben geht, erkläre ich euch nun hier.
Die Hexadezimalen Zahlen gehen von 0-9 und A-F, insgesamt sind es also 16 Zahlen. In der folgenden Tabelle wird ausführlich erklärt, was für einen Wert jede Zahl hat.
Hexadezimale Zahlen
| Hexadezimal | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Dezimal | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Wie man sieht, haben nur die Buchstaben A-F andere Werte, als sich selbst
Es werden dafür keine Zahlen verwendet, weil es Verwechslungen mit den normalen Zahlen geben kann/geben wird.
Beispiele:
2649 ≙ A59Hex
19816 ≙ 4D68Hex
Umrechnung Dezimal => Hexadezimal
2649
2649/16 = 165 Rest: 9 = 9 165/16 = 10 Rest: 5 = 5 10/16 = 0 Rest: 10 = A
=> A59Hex
19816
19816/16 = 1238 Rest: 8 = 8 1238/16 = 77 Rest: 6 = 6 77/16 = 4 Rest: 13 = D 4/16 = 0 Rest: 4 = 4
=> 4D68Hex
Das Ergebnis dieser Rechnung liest man von oben nach unten.
Wie einige es vllt schon bemerkt haben, rechnet man das Ergebnis der vorherigen Rechnung (am Anfang natürlich mit der Anfangszahl) durch 16, und sucht dann den Rest (lernt man schon in der Grundschule *gg*). Der Rest legt dann den Zahlenwert der hexadezimalen Zahl fest. Eigentlich ganz einfach, oder?
Umrechnung Hexadezimal =>Dezimal
A59Hex
10*16^2 + 5*16^1 + 9*16^0 = 2560 + 80 + 9 = 2649
4D68Hex
4*16^3 + 13*16^2 + 6*16^1 + 8*16^0 = 16384 + 3328 + 96 + 8 = 19816
Um eine hexadezimale Zahl zurück in eine dezimale Zahl zu rechnen, muss man die einzelnen Ziffern mit 16^(Position der Ziffer) multiplizieren und dann alle Produkte addieren. Die Position der Ziffer wird von hinten an gezählt, und beginnt bei 0. Außerdem müssen die Buchstaben A-F als Dezimalzahlen (10-15) gerechnet werden.

