Leitfaden zur Zahlensystem-Umrechnung: BinÀr, Hexadezimal und Oktal erklÀrt
Wenn Sie jemals auf einen Hex-Farbcode wie #1A2B3C oder eine Unix-Berechtigung wie chmod 755 gestarrt und sich gefragt haben, woher diese Zahlen kommen, sind Sie nicht allein. Zahlensysteme gehören zu den grundlegenden Konzepten, die die meisten Entwickler tĂ€glich verwenden, ohne darĂŒber nachzudenken â bis zu dem Moment, in dem sie tatsĂ€chlich zwischen ihnen umrechnen mĂŒssen.
Ăndern wir das. Dieser Leitfaden erklĂ€rt die fĂŒr die Programmierung relevanten Zahlensysteme, wie man zwischen ihnen umrechnet und wann welches in der Praxis vorkommt.
Was bedeutet âBasis" eigentlich?
Wir zÀhlen in Basis 10 (Dezimalsystem), weil wir zehn Finger haben. Jede Ziffernposition reprÀsentiert eine Potenz von 10:
4 2 7
| | |
| | âââ 7 Ă 10â° = 7
| âââââââ 2 Ă 10Âč = 20
âââââââââââ 4 Ă 10ÂČ = 400
âââ
Total = 427
Das ist Stellenwertnotation. Die âBasis" (auch Radix genannt) gibt an, wie viele einzigartige Ziffern im System existieren und womit jede Position multipliziert wird. Basis 10 hat die Ziffern 0â9. Basis 2 hat die Ziffern 0 und 1. Basis 16 hat die Ziffern 0â9 und die Buchstaben AâF.
Das Konzept ist ĂŒber alle Basen hinweg identisch â nur die Anzahl der verfĂŒgbaren Symbole und der Multiplikator pro Position Ă€ndern sich.
Wussten Sie schon? Die Babylonier verwendeten Basis 60 (Sexagesimalsystem). Deshalb haben wir 60 Sekunden in einer Minute und 360 Grad in einem Kreis.
BinÀr (Basis 2): Die Sprache der Hardware
Warum Computer binÀr verwenden
Computer basieren auf Transistoren, und Transistoren haben zwei zuverlÀssige ZustÀnde: an und aus. Das passt perfekt zu 1 und 0. Man könnte theoretisch einen Computer mit Basis 3 bauen, aber drei Spannungspegel zu unterscheiden ist schwieriger und fehleranfÀlliger als zwei zu unterscheiden. Das BinÀrsystem gewinnt, weil es einfach und robust ist.
BinÀrzahlen lesen
BinÀr funktioniert genauso wie Dezimal, aber jede Position reprÀsentiert eine Potenz von 2:
1 0 1 1 0 1
| | | | | |
| | | | | âââ 1 Ă 2â° = 1
| | | | âââââââ 0 Ă 2Âč = 0
| | | âââââââââââ 1 Ă 2ÂČ = 4
| | âââââââââââââââ 1 Ă 2Âł = 8
| âââââââââââââââââââ 0 Ă 2⎠= 0
âââââââââââââââââââââââ 1 Ă 2â” = 32
ââ
Total = 45
Also entspricht 101101 im BinĂ€rsystem der Dezimalzahl 45. Man liest von rechts nach links und verdoppelt den Stellenwert jedes Mal: 1, 2, 4, 8, 16, 32, 64, 128 âŠ
Bits, Bytes und darĂŒber hinaus
- Bit: eine einzelne BinÀrziffer (0 oder 1)
- Nibble: 4 Bits (entspricht einer Hexadezimalziffer, Werte 0â15)
- Byte: 8 Bits (Werte 0â255)
- Kilobyte: 1.024 Bytes (2Âčâ°)
Ein einzelnes Byte kann 256 verschiedene Werte darstellen. Deshalb passen ASCII-Zeichen in ein Byte, und RGB-FarbkanÀle reichen von 0 bis 255.
Grundlagen der BinÀrarithmetik
Die Addition im BinĂ€rsystem folgt denselben Regeln wie im Dezimalsystem, aber der Ăbertrag erfolgt bei 2 statt bei 10:
1 0 1 1 (11 in decimal)
+ 0 1 1 0 ( 6 in decimal)
âââââââââ
1 0 0 0 1 (17 in decimal)
Wenn 1 + 1 = 10 im BinĂ€rsystem ergibt (genau wie 9 + 1 = 10 im Dezimalsystem), schreibt man 0 und ĂŒbertrĂ€gt 1.
Oktal (Basis 8): Das Altsystem
Ein kurzer geschichtlicher Abriss
Das Oktalsystem war in den 1960er und 1970er Jahren bei Maschinen wie dem PDP-8 beliebt, der 12-Bit-Wörter verwendete â sauber in vier Gruppen zu je drei Bits aufteilbar. Jede Oktalziffer entspricht genau drei BinĂ€rziffern, was es zu einer praktischen Kurzschreibweise machte.
Wo man Oktal heute noch findet
Der hĂ€ufigste Anwendungsfall sind die Unix-Dateiberechtigungen. Wenn Sie chmod 755 script.sh eingeben, ist jede Ziffer eine Oktalzahl, die die Berechtigungen Lesen (4), Schreiben (2) und AusfĂŒhren (1) darstellt:
7 = 4 + 2 + 1 = rwx (owner: read, write, execute)
5 = 4 + 0 + 1 = r-x (group: read, execute)
5 = 4 + 0 + 1 = r-x (others: read, execute)
Oktalzahlen in der Programmierung verwenden das PrĂ€fix 0o (oder einfach eine fĂŒhrende 0 in C, was schon fĂŒr zahlreiche Bugs gesorgt hat):
const permissions = 0o755; // 493 in decimal
console.log(permissions.toString(8)); // "755"
Vorsicht in JavaScript und Python: Eine fĂŒhrende Null wie 0755 kann in manchen Kontexten als Oktalzahl interpretiert werden. Verwenden Sie immer das explizite PrĂ€fix 0o, um Mehrdeutigkeiten zu vermeiden.
Hexadezimal (Basis 16): Der Liebling der Entwickler
Warum Hexadezimal existiert
Das Hexadezimalsystem löst ein praktisches Problem: BinĂ€rzahlen werden schnell sehr lang. Die Dezimalzahl 255 ist 11111111 im BinĂ€rsystem â acht Ziffern. In Hexadezimal ist es einfach FF. Jede Hexadezimalziffer entspricht genau vier BinĂ€rziffern (einem Nibble), was Umrechnungen trivial und Zahlen kompakt macht.
Hexadezimal verwendet die Ziffern 0â9 plus die Buchstaben AâF:
| Decimal | Binary | Hex |
|---|---|---|
| 0 | 0000 | 0 |
| 1 | 0001 | 1 |
| 9 | 1001 | 9 |
| 10 | 1010 | A |
| 11 | 1011 | B |
| 15 | 1111 | F |
Hexadezimal im Alltag
Webfarben sind die sichtbarste Anwendung von Hexadezimal. #FF5733 lĂ€sst sich so aufschlĂŒsseln:
#FF5733
ââââââ
ââââââââ Blue: 0x33 = 51
ââââââââ Green: 0x57 = 87
ââââââââ Red: 0xFF = 255
Speicheradressen in Debuggern werden in Hexadezimal angezeigt: 0x7FFF5FBFFA10 ist lesbarer als der Dezimalwert 140.734.799.804.944.
MAC-Adressen verwenden durch Doppelpunkte getrennte Hex-Paare: A4:83:E7:2B:00:1F.
Farben in CSS: rgba(255, 87, 51, 1.0) und #FF5733 stellen dieselbe Farbe dar â Hexadezimal ist lediglich kompakter.
Umrechnung zwischen Basen
Dezimal nach BinÀr
Teilen Sie wiederholt durch 2 und sammeln Sie die Reste â lesen Sie sie von unten nach oben:
45 Ă· 2 = 22 remainder 1 â
22 Ă· 2 = 11 remainder 0 â
11 Ă· 2 = 5 remainder 1 â Read upward:
5 Ă· 2 = 2 remainder 1 â 101101
2 Ă· 2 = 1 remainder 0 â
1 Ă· 2 = 0 remainder 1 â
Ergebnis: 45 dezimal = 101101 binÀr.
Dezimal nach Hexadezimal
Derselbe Ansatz, aber durch 16 teilen:
427 Ă· 16 = 26 remainder 11 (B) â
26 Ă· 16 = 1 remainder 10 (A) â Read upward: 1AB
1 Ă· 16 = 0 remainder 1 â
Ergebnis: 427 dezimal = 1AB hexadezimal.
BinÀr nach Hexadezimal (die einfache Umrechnung)
Gruppieren Sie die BinÀrziffern in Vierergruppen (von rechts nach links) und rechnen Sie jede Gruppe um:
Binary: 10 1101
Padded: 0010 1101
Groups: 2 D
Result: 0x2D
ĂberprĂŒfung: 0x2D = 2Ă16 + 13 = 45 â
Hexadezimal nach BinÀr
Kehren Sie den Vorgang um. Erweitern Sie jede Hexadezimalziffer zu vier BinÀrziffern:
Hex: F A 3
Binary: 1111 1010 0011
Result: 111110100011
Tipp: Lernen Sie die BinĂ€rmuster von 0 bis F auswendig (es sind nur 16). Sobald Sie diese kennen, gelingen HexâBinĂ€r-Umrechnungen sofort im Kopf. Beginnen Sie mit den Zweierpotenzen: 1=0001, 2=0010, 4=0100, 8=1000.
Zahlensystem-Notation in Programmiersprachen
Jede wichtige Sprache bietet eine Syntax, um Zahlen in verschiedenen Basen zu schreiben:
// JavaScript
const binary = 0b101101; // 45
const octal = 0o55; // 45
const hex = 0x2D; // 45
const decimal = 45; // 45
(45).toString(2); // "101101"
(45).toString(8); // "55"
(45).toString(16); // "2d"
parseInt("101101", 2); // 45
parseInt("55", 8); // 45
parseInt("2D", 16); // 45
# Python
binary = 0b101101 # 45
octal = 0o55 # 45
hexval = 0x2D # 45
bin(45) # '0b101101'
oct(45) # '0o55'
hex(45) # '0x2d'
int("101101", 2) # 45
int("55", 8) # 45
int("2D", 16) # 45
// C / C++
int binary = 0b101101; // 45 (C23 / GCC extension)
int octal = 055; // 45 (leading zero = octal!)
int hex = 0x2D; // 45
Beachten Sie die C-Falle: Eine fĂŒhrende 0 bedeutet oktal. int x = 010; ergibt 8, nicht 10. DarĂŒber sind schon unzĂ€hlige Programmierer gestolpert.
Praktische AnwendungsfÀlle
Bitweise Operationen und Flags
const READ = 0x01; // 0001
const WRITE = 0x02; // 0010
const EXECUTE = 0x04; // 0100
const ADMIN = 0x08; // 1000
let permissions = READ | WRITE; // 0x03 = 0011
if (permissions & EXECUTE) {
// check if execute bit is set
}
Debugging und Speicherinspektion
Wenn Sie einen Segmentation Fault an der Adresse 0xDEADBEEF sehen oder Speicher mit 0xCAFEBABE initialisiert wird, handelt es sich um Hex-Konstanten, die gezielt gewĂ€hlt wurden, weil sie in SpeicherabzĂŒgen leicht zu erkennen sind. Java-Klassendateien beginnen mit der magischen Zahl 0xCAFEBABE â und ja, jemand hatte SpaĂ beim Benennen.
Netzwerkprotokolle
IPv6-Adressen verwenden Hexadezimalnotation: 2001:0db8:85a3:0000:0000:8a2e:0370:7334. MAC-Adressen, USB-Hersteller-IDs und Bluetooth-UUIDs nutzen alle die Hexadezimaldarstellung, weil sie BinÀrdaten kompakt und lesbar hÀlt.
Probieren Sie es selbst aus
Vergessen Sie das manuelle Rechnen. Unser Zahlensystem-Umrechner erledigt Umrechnungen zwischen beliebigen Basen sofort â Dezimal, BinĂ€r, Oktal, Hexadezimal oder jede benutzerdefinierte Basis bis 36. FĂŒgen Sie eine Zahl ein, wĂ€hlen Sie Quell- und Zielbasis, und erhalten Sie das Ergebnis augenblicklich. Alles lĂ€uft in Ihrem Browser, es werden keine Daten an einen Server gesendet.
Besonders nĂŒtzlich ist es, wenn Sie:
- Hexadezimale SpeicherabzĂŒge durch Umrechnung in Dezimal debuggen möchten
- Unix-Berechtigungen in BinĂ€r/Oktal berechnen mĂŒssen
- Farbcodes zwischen Hexadezimal und RGB-Werten ĂŒberprĂŒfen möchten
- Zwischen Basen umrechnen mĂŒssen, die keine Zweierpotenzen sind
WeiterfĂŒhrende Ressourcen
- Base64-Kodierung erklĂ€rt â Base64 verwendet einen anderen Ansatz (6-Bit-Gruppen, die auf 64 Zeichen abgebildet werden), um BinĂ€rdaten als Text zu kodieren
- Hash-Algorithmen im Vergleich â Hash-Ausgaben werden typischerweise in Hexadezimal dargestellt
- Zahlensystem-Umrechner â rechnen Sie sofort zwischen beliebigen Basen in Ihrem Browser um
đ ïž Jetzt ausprobieren: Zahlensystem-Umrechner â rechnen Sie zwischen BinĂ€r, Oktal, Dezimal, Hexadezimal und jeder Basis bis 36 um. 100 % clientseitig, komplett kostenlos.