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 in Datenverschlüsselungs- und Komprimierungsalgorithmen verwendet. 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 der Pfeife | und XOR mit dem Caret ^ dargestellt. Nicht, auch als Komplementoperator bekannt, wird mit einem Tilde ~ angezeigt.

Der richtige Schaltoperator verwendet ein Doppel-Caret, das auf die rechte > zeigt. Im Gegensatz,Die linke Verschiebung wird durch einen links angezeigten Doppel-Automaten << angezeigt. Java enthält einen weiteren rechten Schichtvorgang, der mit einem rechts zeigenden Triple-Carett->>>> . Nicht, die rechte Verschiebung und die linke Verschiebung haben nur einen echten Operanden; Der zweite Wert in den Schichtoperationen ist die Bitzahl. Um besser zu verstehen, wie Bitgewise -Operatoren funktionieren, kann eine Person ihre Operanden als binäre Ziffern visualisieren. Zum Beispiel dreht der Komplementbetreiber jedes Bit seines einzelnen Operanden in den gegenüberliegenden Zustand. Ein One wird zu einer Null und eine Null wird zu einer. Die Ergänzung des 8-Bit-Binärwerts 00110101 beträgt 11001010.

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

In 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 dürfte bestimmte Bits in das Ergebnis aus Null aussetzen. Dies geschieht, indem Nullen in diesen Bitpositionen in einem der Operanden platziert werden.

In einem oder Betrieb müssen beide Operand -Bits 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 man in diesen Bitpositionen in einem der Operanden platziert. Für den XOR -Betrieb ist das Ergebnis Null, wenn beide Operandenbits Null sind oder wenn beide Operandenbits einer sind - das Ergebnis ist eins.

linke Verschiebung aNd Right Shift verschieben die Bits im Operanden links oder rechts nach der angegebenen Anzahl von Bitpositionen. Eine logische rechte Verschiebung bewegt als Teil der Verschiebung eine Null in das linke Bit. Eine arithmetische rechte Verschiebung kopiert das Bit des linken - das Vorzeichenbit, bevor die Verschiebung in dieselbe Position nach der Verschiebung ist. Das ursprüngliche Bit wird auch zusammen mit dem Rest nach rechts verschoben. Beide Art der linken Verschiebung bewegt sich eine Null in das rechtliche Bit.

Wenn ein Operand rechts verschoben ist, ist das rechts rechtliche Bit vor dem einfach weggeworfenen Schicht. In ähnlicher Weise wird das Bit links vor dem linken Verschiebung entsorgt. Es wird nicht bis zum anderen Ende des Operanden umgezogen.

Bitgewise Shift Operations sind sprach- und implementierungsabhängig. Zum Beispiel in C und C ++ führen >> 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 ArithmOTED -Verschiebungen werden immer mit >> und << durchgeführt. Der >>> -:

Komplikationen können auch auftreten, wenn Operanden unterschiedliche Bitlängen haben oder wenn einige unterschrieben sind und einige nicht signiert sind. 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.

ANDERE SPRACHEN

War dieser Artikel hilfreich? Danke für die Rückmeldung Danke für die Rückmeldung

Wie können wir helfen? Wie können wir helfen?