Bitweise Operatoren – AND, OR, XOR, NOT und die beiden Verschiebungen – wirken direkt auf die binäre Darstellung einer Zahl, Bit für Bit, und nicht auf deren Dezimalwert. Sie tauchen ständig in der Programmierung auf: Bitmasken, Flags, Berechtigungen, Hashing und Performance-Tricks auf niedriger Ebene stützen sich alle auf sie. Mit diesem Rechner können Sie zwei Ganzzahlen im Dezimal-, Binär- oder Hexadezimalformat eingeben, eine der sechs Operationen anwenden und genau sehen, welche Bits sich geändert haben.

Wie jede Operation funktioniert

UND, ODER und XOR vergleichen jeweils eine Bitposition von A und B und kombinieren sie nach einer einfachen Regel: UND behält nur dann eine 1, wenn beide Eingaben 1 sind, ODER behält eine 1, wenn eine der Eingaben 1 ist, und XOR behält nur dann eine 1, wenn die Eingaben nicht übereinstimmen. NOT ist anders – es benötigt eine einzelne Eingabe und dreht jedes Bit um, was bei einer festen Bitbreite der Berechnung von −A−1 entspricht.

Die beiden Schiebeoperationen verschieben Bits seitwärts, anstatt zwei Zahlen zu kombinieren. Eine Linksverschiebung um n multipliziert den Wert mit 2ⁿ, verschiebt jedes Bit in Richtung des oberen Endes und füllt das untere Ende mit Nullen. Eine (logische) Rechtsverschiebung um n dividiert durch 2ⁿ und rundet ab, wobei jedes Bit zum unteren Ende verschoben wird und alles verworfen wird, was vom rechten Rand abfällt.

Eingaben und was sie bedeuten

Wählen Sie die Basis aus, in der Ihre Zahlen geschrieben werden – dezimal, binär oder hexadezimal – und die Bitbreite (8, 16 oder 32 Bit), mit der die Berechnung durchgeführt wird. Die Bitbreite ist wichtig, weil sie bestimmt, wie sich NOT und negative Zahlen verhalten: Alles wird mit dem Zweierkomplement bei dieser Breite berechnet, sodass die gleiche Operation an denselben Zahlen ein unterschiedliches Bitmuster bei 8-Bit-Breite gegenüber 16-Bit-Breite ergeben kann.

Für AND, OR und XOR sind sowohl Wert A als auch Wert B vollständige Operanden. Bei einer Verschiebung wird Wert B als Verschiebungsbetrag in Bits (immer als einfache Dezimalzahl gelesen, unabhängig von der ausgewählten Basis) und nicht als zweiter Operand neu interpretiert. NICHT verwendet nur Wert A.

Grenzen und Randfälle

Negative Dezimaleingaben werden unterstützt und über das Zweierkomplement mit der gewählten Bitbreite gespeichert – zum Beispiel ist −1 bei 8 Bit Breite das Nur-Einsen-Muster 11111111. Durch das Verschieben um einen Betrag auf oder über die konfigurierte Bitbreite hinaus wird einfach jedes Bit gelöscht, da nichts mehr verschoben werden muss. Dieser Rechner konzentriert sich auf ganzzahlige bitweise Operationen; Um eine Zahl zwischen Zahlensystemen umzuwandeln, ohne eine Operation anzuwenden, verwenden Sie stattdessen den Zahlenbasisrechner.