Warum Hexadezimal?
Teil des Abschnitts Grundlagen der Assembly-Journey von Coddy. Lektion 10 von 45.
Du weißt jetzt, dass Computer Binärzahlen verwenden. Warum schreiben Assembly-Programmierer also nur selten Binärzahlen direkt?
Das Problem mit Binärzahlen:
Binärzahlen sind sehr lang. Sieh dir dieses Beispiel an:
| Zahl | Binär |
|---|---|
| 255 | 11111111 |
| 1000 | 1111101000 |
| 65535 | 1111111111111111 |
Das Schreiben langer Zeichenfolgen aus 1en und 0en ist langsam, fehleranfällig und schwer zu lesen.
Die Lösung: Hexadezimal (Basis 16).
Hexadezimal (oder „hex“) verwendet 16 Symbole:
| Ziffer | Wert |
|---|---|
| 0-9 | 0 bis 9 |
| A | 10 |
| B | 11 |
| C | 12 |
| D | 13 |
| E | 14 |
| F | 15 |
Warum Hexadezimalzahlen perfekt für Computer sind:
Eine Hexadezimalziffer repräsentiert genau 4 Bits (ein halbes Byte).
| Bits | Benötigte Hexadezimalziffern |
|---|---|
| 4 Bits (Nibble) | 1 Hexadezimalziffer |
| 8 Bits (1 Byte) | 2 Hexadezimalziffern |
| 16 Bits (2 Bytes) | 4 Hexadezimalziffern |
| 32 Bits (4 Bytes) | 8 Hexadezimalziffern |
| 64 Bits (8 Bytes) | 16 Hexadezimalziffern |
Dieselbe Zahl, drei Darstellungen:
| Dezimal | Binär | Hexadezimal |
|---|---|---|
| 255 | 11111111 | FF |
| 1000 | 1111101000 | 3E8 |
| 65535 | 1111111111111111 | FFFF |
Beachte, wie viel kürzer hex im Vergleich zu Binär ist.
Wo du hex in Assembly sehen wirst:
- Speicheradressen (wie
0x7FFFoder0x402000) - ASCII-Codes (wie
0x41für „A“,0x0afür einen Zeilenumbruch)
- Registerwerte in Debuggern
- Farbwerte (wie
0xFF0000für Rot)
Hex wird mit einem Präfix geschrieben:
| Präfix | Beispiel | Bedeutung |
|---|---|---|
0x | 0xFF | FF in hex (255 im Dezimalsystem) |
$ | $FF | Dasselbe (wird in einigen Assemblierern verwendet) |
h | FFh | Dasselbe (älterer Stil) |
In diesem Kurs verwenden wir das Präfix 0x: 0x0a, 0x41, 0xFF.
Probier es selbst
Diese Lektion enthält keine Programmieraufgabe.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
1Die Maschine
Was ist eine CPUSpeicherRegister vs. SpeicherWie Befehle funktionierenZwei-Dateien-MusterDie x86-64 Architektur2Zahlensysteme
Warum Binär?BinärzahlenDezimal zu BinärWarum Hexadezimal?Hex zu DezimalDezimal zu HexASCII & HexÜbe selbstständig: Assembly-Playground