Skip to main content

Was sind bitweise Operatoren?

In einem Computerprogramm sind Bitgewise -Operatoren Operatoren zum Manipulieren von Bitmustern in Ausdrücken.Bitweise und, oder exklusiv oder (xor), nicht, die rechte Verschiebung und die linke Verschiebung sind übliche Operationen.Die meisten Computerprogrammiersprachen umfassen alle sechs Operatoren.Sie werden häufig zum Einstellen, Löschen oder Umdrehen einzelner Bits in Programmen verwendet, die Computerhardware steuern.Bitgewise -Operatoren werden auch häufig bei Datenverschlüsselungs- und Komprimierungsalgorithmen verwendet.

Die gemeinsamen Bitgewise -Operatoren werden normalerweise symbolisch in Programmiersprachen wie C, C ++ und Java dargestellt.Sie werden in Ausdrücken verwendet, ebenso wie arithmetische Operatoren wie Plus oder Minus -Zeichen.Der bitweise Operator und wird mit dem Ampersand oder mit dem Rohr | und xor mit dem Pfarr ^ dargestellt.Nicht, auch als Komplementbetreiber bekannt, wird mit einer Tilde ~ angezeigt.

Der richtige Schichtbetreiber verwendet ein Doppel-Karett, das nach rechts zeigt .Im Gegensatz dazu wird die linke Verschiebung durch ein links angezeigtes Doppelhart-Carett << angezeigt.Java enthält einen weiteren Vorgang mit der rechten Schicht, das mit einem rechts zeigenden Triple-Caret- angezeigt wird.Nicht, die rechte Verschiebung und die linke Verschiebung haben nur einen echten Operanden;Der zweite Wert in Shift -Operationen ist die Bitzahl.Um besser zu verstehen, wie bitweise Operatoren funktionieren, kann eine Person ihre Operanden als binäre Ziffern visualisieren.Zum Beispiel dreht der Komplement -Operator jedes Bit seines einzelnen Operanden in den gegenüberliegenden Zustand.Eine wird zu einer Null und eine Null wird zu einem.Die Ergänzung des 8-Bit-Binärwerts 00110101 beträgt 11001010.

Der und der Betreiber hat zwei Operanden.Bit für Stück wird ein logischer und Betrieb unter Verwendung eines entsprechenden Bits von jedem Operanden durchgeführt.Das Ergebnis jeder Bitoperation wird in dieser Bitposition des Gesamtergebnisses platziert.Zum Beispiel verarbeitet der und Bediener Bit 7 von einem Operanden mit Bit 7 der anderen Operanden.Das Ergebnis wird in Bit 7 des Gesamtergebnisses gespeichert.

Bei einem und Betrieb müssen beide Operandenbits eine sein, damit das Ergebnis eins ist, andernfalls ist das Ergebnis Null.Wenn beispielsweise die 8-Bit-Binärwerte der Operanden 00110101 und 11110000 betragen, beträgt das Ergebnis 00110000. Eine häufige Verwendung des und Bedieners soll bestimmte Bits in das Ergebnis ausführen.Dies geschieht durch Einlegen von Nullen in diesen Bitpositionen in einem der Operanden. In einem oder Betrieb müssen beide Operandenbits Nullen sein, damit das Ergebnis Null ist.Ansonsten ist das Ergebnis eins.Eine häufige Verwendung des oder Operators besteht darin, bestimmte Bits des Ergebnisses auf die einzusetzen.Dies geschieht, indem sie in diesen Bitpositionen in einem der Operanden platziert werden.Für den XOR -Betrieb ist das Ergebnis Null, wenn beide Operandenbits Null sind oder wenn beide Operandenbits ein mdash sind. Andernfalls ist das Ergebnis eins.von Bit Positionen.Eine logische rechte Verschiebung bewegt als Teil der Verschiebung eine Null in das linke Bit.Eine arithmetische rechte Verschiebung kopiert das Bit des linken und mdash; das Zeichen bit mdash; vor der Verschiebung in dieselbe Position nach der Verschiebung.Das ursprüngliche Bit wird auch zusammen mit dem Rest direkt verschoben.Beide Art der linken Verschiebung bewegt sich eine Null in das rechts rechtliche Bit. << Wenn ein Operand rechts verändert wird, wird das rechts rechtliche Bit vor dem einfach weggeworfenen Schicht.In ähnlicher Weise wird das linke Bit vor dem linken Verschiebung entsorgt.Es wird nicht bis zum anderen Ende des Operanden umgezogen.In C und C ++ führen beispielsweise und logische Verschiebungen durch, wenn der Operand eine nicht signierte Ganzzahl ist.Wenn der Operand eine unterschriebene Ganzzahl ist, ist es wahrscheinlich, dass stattdessen eine arithmetische Verschiebung durchgeführt wird.In Java werden alle Operanden als signiert angesehen, und arithmetische Verschiebungen sindImmer mit und << durchgeführt.Der -Preiber wird für eine logische rechte Verschiebung verwendet, aber es ist immer noch möglich, versehentlich eine arithmetische rechte Verschiebung durchzuführen, ohne sorgfältig zu typernEinige sind nicht signiert.Bitweise Operatoren und numerische Konstanten in der Mitte eines komplexen Expression werden möglicherweise nicht wie erwartet bewertet.Es muss darauf geachtet werden, die Größe und die signierte/nicht signierte Art jeder Menge im Ausdruck festzulegen.Dies kann mit sorgfältiger Typen- oder Zwischenzuordnungen zu bestimmten Variablentypen im Programmcode erfolgen.