Die bitweisen Operatoren sind die Operatoren, mit denen die Operationen an den Daten auf Bitebene ausgeführt werden. Wenn wir die bitweisen Operationen ausführen, spricht man auch von der Programmierung auf Bitebene. Es besteht aus zwei Ziffern, entweder 0 oder 1. Es wird hauptsächlich bei numerischen Berechnungen verwendet, um die Berechnungen zu beschleunigen.
In der Programmiersprache C gibt es verschiedene Arten von bitweisen Operatoren. Das Folgende ist die Liste der bitweisen Operatoren:
Operator | Bedeutung des Operators |
---|---|
& | Bitweiser UND-Operator |
| | Bitweiser ODER-Operator |
^ | Bitweiser Exklusiv-ODER-Operator |
~ | Einerkomplementoperator (unärer Operator) |
<< | Linker Shift-Operator |
>> | Rechter Shift-Operator |
Schauen wir uns die Wahrheitstabelle der bitweisen Operatoren an.
Binärbaum vs. binärer Suchbaum
X | UND | X&Y | X|Y | X^Y |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 1 |
Bitweiser UND-Operator
Der bitweise UND-Operator wird durch das einzelne kaufmännische Und-Zeichen (&) gekennzeichnet. Auf beiden Seiten des (&)-Operators werden zwei ganzzahlige Operanden geschrieben. Wenn die entsprechenden Bits beider Operanden 1 sind, ist die Ausgabe der bitweisen UND-Operation 1; andernfalls wäre die Ausgabe 0.
Zum Beispiel,
We have two variables a and b. a =6; b=4; The binary representation of the above two variables are given below: a = 0110 b = 0100 When we apply the bitwise AND operation in the above two variables, i.e., a&b, the output would be: Result = 0100
Wie wir aus dem obigen Ergebnis sehen können, werden die Bits beider Variablen einzeln verglichen. Wenn das Bit beider Variablen 1 ist, wäre die Ausgabe 1, andernfalls 0.
Lassen Sie uns den bitweisen UND-Operator anhand des Programms verstehen.
#include int main() { int a=6, b=14; // variable declarations printf('The output of the Bitwise AND operator a&b is %d',a&b); return 0; }
Im obigen Code haben wir zwei Variablen erstellt, nämlich „a“ und „b“. Die Werte von „a“ und „b“ betragen 6 bzw. 14. Der Binärwert von „a“ und „b“ ist 0110 bzw. 1110. Wenn wir den UND-Operator zwischen diesen beiden Variablen anwenden,
a UND b = 0110 && 1110 = 0110
10 von 60
Ausgabe
Bitweiser ODER-Operator
Der bitweise ODER-Operator wird durch ein einzelnes vertikales Zeichen (|) dargestellt. Auf beiden Seiten des (|)-Symbols werden zwei ganzzahlige Operanden geschrieben. Wenn der Bitwert eines Operanden 1 ist, wäre die Ausgabe 1, andernfalls 0.
Zum Beispiel,
We consider two variables, a = 23; b = 10; The binary representation of the above two variables would be: a = 0001 0111 b = 0000 1010 When we apply the bitwise OR operator in the above two variables, i.e., a|b , then the output would be: Result = 0001 1111
Wie wir aus dem obigen Ergebnis sehen können, werden die Bits beider Operanden einzeln verglichen; Wenn der Wert eines Bits 1 ist, wäre die Ausgabe 1, andernfalls 0.
Lassen Sie uns den bitweisen ODER-Operator anhand eines Programms verstehen.
#include int main() int a=23,b=10; // variable declarations printf('The output of the Bitwise OR operator a
Ausgabe
Bitweiser Exklusiv-ODER-Operator
Der bitweise Exklusiv-ODER-Operator wird durch das Symbol (^) gekennzeichnet. Auf beiden Seiten des Exklusiv-ODER-Operators werden zwei Operanden geschrieben. Wenn das entsprechende Bit eines Operanden 1 ist, wäre die Ausgabe 1, andernfalls 0.
Zum Beispiel,
We consider two variables a and b, a = 12; b = 10; The binary representation of the above two variables would be: a = 0000 1100 b = 0000 1010 When we apply the bitwise exclusive OR operator in the above two variables (a^b), then the result would be: Result = 0000 1110
Wie wir aus dem obigen Ergebnis sehen können, werden die Bits beider Operanden einzeln verglichen; Wenn der entsprechende Bitwert eines Operanden 1 ist, wäre die Ausgabe 1, andernfalls 0.
Lassen Sie uns den bitweisen Exklusiv-ODER-Operator anhand eines Programms verstehen.
#include int main() { int a=12,b=10; // variable declarations printf('The output of the Bitwise exclusive OR operator a^b is %d',a^b); return 0; }
Ausgabe
C#-Codebeispiele
Bitweiser Komplementoperator
Der bitweise Komplementoperator wird auch als Einerkomplementoperator bezeichnet. Es wird durch das Symbol Tilde (~) dargestellt. Es benötigt nur einen Operanden oder eine Variable und führt eine Komplementoperation für einen Operanden durch. Wenn wir die Komplementoperation auf beliebige Bits anwenden, wird 0 zu 1 und 1 zu 0.
Zum Beispiel,
If we have a variable named 'a', a = 8; The binary representation of the above variable is given below: a = 1000 When we apply the bitwise complement operator to the operand, then the output would be: Result = 0111
Wie wir aus dem obigen Ergebnis sehen können, wird das Bit, wenn es 1 ist, in 0 geändert, andernfalls in 1.
Lassen Sie uns den Komplementoperator anhand eines Programms verstehen.
#include int main() { int a=8; // variable declarations printf('The output of the Bitwise complement operator ~a is %d',~a); return 0; }
Ausgabe
Bitweise Verschiebungsoperatoren
In der C-Programmierung gibt es zwei Arten von bitweisen Verschiebungsoperatoren. Die bitweisen Verschiebungsoperatoren verschieben die Bits entweder auf die linke oder rechte Seite. Daher können wir sagen, dass der bitweise Verschiebungsoperator in zwei Kategorien unterteilt ist:
- Links-Shift-Operator
- Rechts-Shift-Operator
Links-Shift-Operator
Java-Farben
Es handelt sich um einen Operator, der die Anzahl der Bits nach links verschiebt.
Die Syntax des Linksverschiebungsoperators ist unten angegeben:
Operand << n
Wo,
Operand ist ein ganzzahliger Ausdruck, auf den wir die Linksverschiebungsoperation anwenden.
n ist die Anzahl der zu verschiebenden Bits.
Im Fall des Linksverschiebungsoperators werden „n“ Bits nach links verschoben. Die „n“ Bits auf der linken Seite werden entfernt und die „n“ Bits auf der rechten Seite werden mit 0 aufgefüllt.
Zum Beispiel,
Suppose we have a statement: int a = 5; The binary representation of 'a' is given below: a = 0101 If we want to left-shift the above representation by 2, then the statement would be: a << 2; 0101<<2 = 00010100 < pre> <p> <strong>Let's understand through a program.</strong> </p> <pre> #include int main() { int a=5; // variable initialization printf('The value of a<<2 is : %d ', a<<2); return 0; } < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/c-tutorial/51/bitwise-operator-c-5.webp" alt="Bitwise Operator in C"> <p> <strong>Right-shift operator</strong> </p> <p>It is an operator that shifts the number of bits to the right side.</p> <p> <strong>Syntax of the right-shift operator is given below:</strong> </p> <pre> Operand >> n; </pre> <p> <strong>Where,</strong> </p> <p>Operand is an integer expression on which we apply the right-shift operation.</p> <p>N is the number of bits to be shifted.</p> <p>In the case of the right-shift operator, 'n' bits will be shifted on the right-side. The 'n' bits on the right-side will be popped out, and 'n' bits on the left-side are filled with 0.</p> <p> <strong>For example, </strong> </p> <pre> Suppose we have a statement, int a = 7; The binary representation of the above variable would be: a = 0111 If we want to right-shift the above representation by 2, then the statement would be: a>>2; 0000 0111 >> 2 = 0000 0001 </pre> <p> <strong>Let's understand through a program.</strong> </p> <pre> #include int main() { int a=7; // variable initialization printf('The value of a>>2 is : %d ', a>>2); return 0; } </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/c-tutorial/51/bitwise-operator-c-6.webp" alt="Bitwise Operator in C"> <hr></2></pre></2>
Wo,
Operand ist ein ganzzahliger Ausdruck, auf den wir die Rechtsverschiebungsoperation anwenden.
N ist die Anzahl der zu verschiebenden Bits.
Binärbaum Java
Im Fall des Rechtsverschiebungsoperators werden „n“ Bits nach rechts verschoben. Die „n“ Bits auf der rechten Seite werden herausgesprungen und die „n“ Bits auf der linken Seite werden mit 0 aufgefüllt.
Zum Beispiel,
Suppose we have a statement, int a = 7; The binary representation of the above variable would be: a = 0111 If we want to right-shift the above representation by 2, then the statement would be: a>>2; 0000 0111 >> 2 = 0000 0001
Lassen Sie uns durch ein Programm verstehen.
#include int main() { int a=7; // variable initialization printf('The value of a>>2 is : %d ', a>>2); return 0; }
Ausgabe
2>2>