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

  1. Gib eine Zahl in eines der vier Felder ein: binär, oktal, dezimal oder hexadezimal.
  2. Die anderen Felder werden sofort aktualisiert. Präfixe wie 0x, 0b und 0o werden akzeptiert.
  3. 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.

DezimalHexadezimalBinärOktal
00x000000o0
10x100010o1
20x200100o2
30x300110o3
40x401000o4
50x501010o5
60x601100o6
70x701110o7
80x810000o10
90x910010o11
100xA10100o12
110xB10110o13
120xC11000o14
130xD11010o15
140xE11100o16
150xF11110o17
160x100001 00000o20
320x200010 00000o40
640x400100 00000o100
1000x640110 01000o144
1270x7F0111 11110o177
1280x801000 00000o200
2550xFF1111 11110o377
2560x1000001 0000 00000o400
5120x2000010 0000 00000o1000
10000x3E80011 1110 10000o1750
10240x4000100 0000 00000o2000
40960x10000001 0000 0000 00000o10000
655350xFFFF1111 1111 1111 11110o177777

Funktioniert etwas nicht, oder sieht ein Ergebnis falsch aus? Ein Problem mit diesem Tool melden