Programmierer-Rechner & Bitrechner

Geben Sie einen Ausdruck mit den Literalen 0x (hexadezimal), 0b (binär) und 0o (oktal), den bitweisen Operatoren & | ^ ~, den Verschiebungen << >> >>>, Rotationen und einfacher Arithmetik ein — das Ergebnis aktualisiert sich sofort als dezimal, hexadezimal, oktal und binär bei einer Wortbreite von 8, 16, 32 oder 64 Bit, mit oder ohne Vorzeichen. Darunter finden Sie ein anklickbares Bitraster, ein bitweises Feld mit zwei Operanden (UND / ODER / XOR / NAND / NOR / NICHT / Verschiebungen / ROL / ROR) sowie das Setzen, Löschen und Umschalten einzelner Bits. Für reine Basisumrechnung ohne Bitlogik siehe den Basisumrechner; für Statistik die Statistikrechner.
Wortbreite   Ansicht   Operatoren: & | ^ ~ << >> >>> + - * / % ( ) — nur Ganzzahlarithmetik; Ergebnisse werden auf die Wortbreite umgebrochen.
DEZ
HEX
OKT
BIN
Bits werden vom höchstwertigen zum niederwertigen angezeigt; abgeblendete Zellen liegen außerhalb der aktuellen Wortbreite.
Bitindex (0 = niederwertigstes)
A =    B =  A und B akzeptieren vollständige Ausdrücke (z. B. 1 << 12).
Die Ergebnistabelle erscheint, sobald A und B beide eingelesen werden können. Verschiebungen und Rotationen nehmen die Anzahl aus B.
Probieren Sie ein Beispiel:
So verhalten sich Verschiebungen: << wird auf die Wortbreite maskiert (Bits, die oben herausfallen, sind verloren). >>> ist immer eine logische (vorzeichenlose) Verschiebung. >> richtet sich nach dem Auswahlfeld Ansicht: arithmetisch im Modus mit Vorzeichen, logisch im vorzeichenlosen Modus. Datenschutz: Der gesamte Rechner läuft in diesem Tab — kein Server, keine Speicherung.

Was ist ein Programmierer-Rechner?

Ein Programmierer-Rechner rechnet so, wie Computer Zahlen speichern: in Wörtern fester Breite aus Bits. Statt einer endlosen Zahlengeraden ist ein 8-Bit-Wort ein Kreis aus 256 Werten, ein 32-Bit-Wort ein Kreis aus 4.294.967.296. Jedes Ergebnis wird in diesen Kreis zurückgeführt, und dieselben Bits lassen sich als vorzeichenlose Zahl (0 … 255) oder als Zweierkomplement mit Vorzeichen (-128 … 127) lesen. Die vier Basiszeilen oben sind dieselben Bits in vier Darstellungen — bearbeiten Sie eine, folgen die anderen drei.

Warum Programmierer im Hexadezimalen leben

Eine Hexziffer entspricht genau vier Bit, daher besteht ein Byte immer aus zwei Hexziffern und ein 32-Bit-Wort immer aus acht. Hex ist Binär mit neu gruppierten Nullen für das menschliche Auge:

BinärHexDezimal
1111 11110xFF255
0001 01100x1622
1000 00000x80128 (bzw. -128 mit Vorzeichen)

Zweierkomplement in einem Absatz

Um ein Wort als vorzeichenbehaftet zu lesen, prüfen Sie das höchste Bit. Ist es 0, ist der Wert einfach die vorzeichenlose Zahl. Ist es 1, ziehen Sie die Kreisgröße ab: Ein 8-Bit-0xFF ist 255 − 256 = −1. Das ist der ganze Trick — -x und 0 - x erzeugen identische Bits, weshalb dieselbe Addierschaltung für beides funktioniert. Die Vorzeichenumkehr lautet „jedes Bit invertieren, 1 addieren“: NICHT(0x01) = 0xFE, +1 = 0xFF = −1.

Die Verschiebungsoperatoren auf einen Blick

OperatorName8-Bit-Beispiel (a = 0xF0)
a << 1Linksverschiebung0xE0 — oberes Bit fällt heraus, unten tritt eine Null ein
a >> 1 (ohne Vorzeichen)logische Rechtsverschiebung0x78 — Nullen treten oben ein
a >> 1 (mit Vorzeichen, a = −16)arithmetische Rechtsverschiebung0xF8 = −8 — das Vorzeichenbit wird kopiert
a >>> 1immer logisch0x78, unabhängig vom Auswahlfeld Ansicht
rol(a, 1)nach links rotieren0xE1 — das herausgefallene obere Bit tritt unten wieder ein

Häufige Fehler, die Ihnen diese Seite zu vermeiden hilft

Arithmetische gegen logische Verschiebung: Das Kopieren des Vorzeichenbits (arithmetisch) und das Auffüllen mit Nullen (logisch) unterscheiden sich, sobald das höchste Bit gesetzt ist — wechseln Sie das Auswahlfeld Ansicht und beobachten Sie, wie sich 0xF0 >> 1 zwischen 0x78 und 0xF8 ändert.
Die 53-Bit-Überraschung: Der gewöhnliche Zahlentyp von JavaScript ist eine 64-Bit-Gleitkommazahl mit nur 53 sicheren Ganzzahlbits, daher lässt sich 0xFFFFFFFFFFFFFFFF nicht exakt darstellen — diese Seite rechnet intern mit exakten 64-Bit-Ganzzahlen, sodass jede angezeigte Hexziffer verlässlich ist.
Gleitkomma-Fallen: 0,1 + 0,2 ergibt bekanntlich 0.30000000000000004 in Gleitkomma; dieser Rechner arbeitet bewusst nur mit Ganzzahlen — die Division schneidet gegen null ab, genau wie C's / bei ganzen Zahlen.
Führende Nullen: In altem C bedeutete ein Literal wie 052 oktal. Hier sind Dezimalzahlen einfache Ziffern, und Oktal braucht das Präfix 0o; nichts ist mehrdeutig.

FAQ

Was ist die größte Zahl? — 64-Bit ohne Vorzeichen: 18.446.744.073.709.551.615 (0xFFFFFFFFFFFFFFFF); mit Vorzeichen: ±9.223.372.036.854.775.808.
Warum wurde 1 << 8 zu 0? — die Wortbreite beträgt 8 Bit; Bit 8 existiert nicht, und die Maske verwirft es. Wechseln Sie auf 16/32/64 Bit, um es zu behalten.
Was macht ~? — bitweise NICHT: Jedes Bit innerhalb der aktuellen Wortbreite kippt, daher ist ~0 lauter Einsen (255 / 65535 / −1 …).
Gibt es Gleitkomma? — Nein, nur Ganzzahlen; für Gleitkomma, Trigonometrie und Funktionen nutzen Sie den Wissenschaftlichen Rechner.
Verlässt etwas meinen Rechner? — Nein: kein Server, keine Speicherung, keine Analyse; schließen Sie den Tab, und alles ist weg.