Zahlensystem-Konverter
Wandle zwischen Binär-, Oktal-, Dezimal- und Hexadezimalzahlen um.
Über dieses Tool
Gib eine Zahl in binär, oktal, dezimal oder hexadezimal ein und sieh sie in allen anderen Systemen, samt ihrer in Bytes gruppierten Bits. Verarbeitet beliebig große Ganzzahlen und erkennt die Präfixe 0x, 0b und 0o.
So verwendest du es
- Gib eine Zahl in eines der vier Felder ein: binär, oktal, dezimal oder hexadezimal.
- Die anderen Felder werden sofort aktualisiert. Präfixe wie 0x, 0b und 0o werden akzeptiert.
- Im Bit-Bereich siehst du den Wert in Bytes aufgeteilt.
Fragen
- Wie große Zahlen kann es verarbeiten?
- Beliebig groß. Es nutzt JavaScript-BigInt, daher gibt es keine 32- oder 64-Bit-Grenze und kein Runden.
- Warum beginnen Hexadezimalzahlen mit 0x?
- Das ist eine Konvention aus C, die heute die meisten Sprachen nutzen, um zu zeigen, dass die Ziffern hexadezimal sind. Ebenso kennzeichnet 0b Binär- und 0o Oktalzahlen.
- Wo wird oktal noch verwendet?
- Hauptsächlich für Unix-Dateirechte, wo 755 rwxr-xr-x bedeutet. Jede Oktalziffer entspricht genau drei Rechte-Bits.
- Wie wandle ich Hex in ASCII-Text um?
- Dieses Tool wandelt Zahlen um, keine Strings. In Hex-Text ist jedes Ziffernpaar ein Byte, das du in einer ASCII-Tabelle nachschlägst: 48 65 6C 6C 6F ergibt „Hello“. Auf der Kommandozeile macht echo 48656c6c6f | xxd -r -p aus einem Hex-String wieder Text.
- Kann es Brüche oder Kommazahlen umrechnen?
- Nein, nur ganze Zahlen. Brüche sind im Binärsystem ohnehin knifflig: 0.1 im Dezimalsystem hat keine exakte binäre Darstellung und wiederholt sich unendlich, deshalb ist 0.1 + 0.2 in den meisten Programmiersprachen nicht exakt 0.3. Gleitkommawerte werden im Format IEEE 754 gespeichert, nicht als einfache binäre Ganzzahlen.
- Was ist die größte Zahl, die in 8, 16, 32 oder 64 Bit passt?
- Ohne Vorzeichen ist es 2ⁿ − 1: 255, 65.535, 4.294.967.295 und 18.446.744.073.709.551.615. Vorzeichenbehaftete Werte erreichen etwa die Hälfte davon, zum Beispiel 2.147.483.647 bei 32 Bit. JavaScript-Zahlen sind nur bis 9.007.199.254.740.991 exakt, deshalb nutzt dieses Tool BigInt, um auch darüber hinaus präzise zu bleiben.
Binär in Dezimal umrechnen und zurück: so geht’s
Jede Ziffer einer Binärzahl ist eine Zweierpotenz wert, beginnend mit 1 ganz rechts. Um 1011 in Dezimal umzurechnen, addierst du die Stellen, an denen eine 1 steht: 8 + 0 + 2 + 1 = 11. Hexadezimal funktioniert genauso mit Potenzen von 16, 0x2F ist also 2 × 16 + 15 = 47. Oktal verwendet Potenzen von acht. Eine Regel gilt für jede Basis: jede Ziffer mal die Basis hoch ihrer Stelle.
Für die Gegenrichtung teilst du wiederholt durch die Zielbasis und schreibst die Reste von hinten nach vorn auf. Teilst du 11 immer wieder durch 2, bleiben die Reste 1, 1, 0 und 1, rückwärts gelesen 1011. Mit diesem Zahlensystem-Konverter tippst du einfach in ein beliebiges Feld, und die anderen drei werden aktualisiert. Im Code hat JavaScript parseInt(text, 2) und n.toString(16), Python hat int(text, 2) und hex(n).
Warum verwenden Programmierer Hexadezimal?
Eine Hex-Ziffer steht für genau vier Bits, zwei Hex-Ziffern beschreiben also ein Byte. Das macht Hex zu einer kompakten, lesbaren Schreibweise für Binärdaten: 11111111 ist FF, und jeder 32-Bit-Wert passt in acht Zeichen. Du begegnest Hex in Speicheradressen, Farbcodes wie #FF8800, Hashes, MAC-Adressen, Unicode-Codepoints wie U+1F680 und den Byte-Dumps von Tools wie xxd und hexdump.
Der Bit-Bereich hier zeigt den Zusammenhang direkt. Der Wert wird auf ganze Bytes aufgefüllt, und jede Gruppe aus acht Bits wird mit ihrem zweistelligen Hexwert darunter angezeigt. 48879 wird zu 10111110 11101111, beschriftet mit BE und EF, deshalb liest es sich als 0xBEEF. So lassen sich Flags, Bitmasken und Bytegrenzen leicht prüfen. Der Subnetzrechner wendet dieselbe Binäransicht auf IPv4-Adressen und Netzmasken an.
Negative Zahlen im Binärsystem: das Zweierkomplement
Computer speichern vorzeichenbehaftete Ganzzahlen meist im Zweierkomplement. Um −1 in 8 Bit zu schreiben, invertierst du jedes Bit von 1 und addierst eins: Aus 00000001 wird 11111110, plus eins ergibt 11111111 bzw. 0xFF. Das oberste Bit dient als Vorzeichen, ein vorzeichenbehafteter 8-Bit-Wert reicht also von −128 bis 127, während dieselben Bits ohne Vorzeichen gelesen von 0 bis 255 reichen. Das Bitmuster ist identisch, nur die Interpretation ändert sich.
Dieser Konverter arbeitet mit einfachen Ganzzahlen, nicht mit Registern fester Breite. Tippst du -5 ein, bekommst du binär -101 und hexadezimal -5, mit vorangestelltem Minuszeichen statt eines Zweierkomplement-Musters. Um das 8-Bit-Muster einer negativen Zahl zu bekommen, addiere zuerst 256: −5 + 256 = 251, also 0xFB. Für 32 Bit addierst du 4294967296. Leerzeichen und Unterstriche werden ignoriert, 1111_1011 funktioniert also als Eingabe.
Tabelle: Dezimal, Hex, Binär und Oktal
Die Zahlen, die du am häufigsten nachschlägst, in allen vier Zahlensystemen.
| Dezimal | Hexadezimal | Binär | Oktal |
|---|---|---|---|
0 | 0x0 | 0000 | 0o0 |
1 | 0x1 | 0001 | 0o1 |
2 | 0x2 | 0010 | 0o2 |
3 | 0x3 | 0011 | 0o3 |
4 | 0x4 | 0100 | 0o4 |
5 | 0x5 | 0101 | 0o5 |
6 | 0x6 | 0110 | 0o6 |
7 | 0x7 | 0111 | 0o7 |
8 | 0x8 | 1000 | 0o10 |
9 | 0x9 | 1001 | 0o11 |
10 | 0xA | 1010 | 0o12 |
11 | 0xB | 1011 | 0o13 |
12 | 0xC | 1100 | 0o14 |
13 | 0xD | 1101 | 0o15 |
14 | 0xE | 1110 | 0o16 |
15 | 0xF | 1111 | 0o17 |
16 | 0x10 | 0001 0000 | 0o20 |
32 | 0x20 | 0010 0000 | 0o40 |
64 | 0x40 | 0100 0000 | 0o100 |
100 | 0x64 | 0110 0100 | 0o144 |
127 | 0x7F | 0111 1111 | 0o177 |
128 | 0x80 | 1000 0000 | 0o200 |
255 | 0xFF | 1111 1111 | 0o377 |
256 | 0x100 | 0001 0000 0000 | 0o400 |
512 | 0x200 | 0010 0000 0000 | 0o1000 |
1000 | 0x3E8 | 0011 1110 1000 | 0o1750 |
1024 | 0x400 | 0100 0000 0000 | 0o2000 |
4096 | 0x1000 | 0001 0000 0000 0000 | 0o10000 |
65535 | 0xFFFF | 1111 1111 1111 1111 | 0o177777 |
Funktioniert etwas nicht, oder sieht ein Ergebnis falsch aus? Ein Problem mit diesem Tool melden