logo

Bitwise-operator in C

De bitsgewijze operatoren zijn de operatoren die worden gebruikt om de bewerkingen op de gegevens op bitniveau uit te voeren. Wanneer we de bitsgewijze bewerkingen uitvoeren, wordt dit ook wel bitniveauprogrammering genoemd. Het bestaat uit twee cijfers, 0 of 1. Het wordt voornamelijk gebruikt bij numerieke berekeningen om de berekeningen sneller te maken.

We hebben verschillende soorten bitsgewijze operatoren in de programmeertaal C. Het volgende is de lijst met bitsgewijze operatoren:

Exploitant Betekenis van exploitant
& Bitsgewijze AND-operator
| Bitwise OR-operator
^ Bitwise exclusieve OR-operator
~ Eén-complementoperator (unaire operator)
<< Shift-operator links
>> Rechter shift operator

Laten we eens kijken naar de waarheidstabel van de bitsgewijze operatoren.

X EN 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

Bitsgewijze AND-operator

De bitsgewijze AND-operator wordt aangegeven met het enkele ampersand-teken (&). Aan beide zijden van de operator (&) worden twee integer-operands geschreven. Als de corresponderende bits van beide operanden 1 zijn, dan is de uitvoer van de bitsgewijze EN-bewerking 1; anders zou de uitvoer 0 zijn.

Bijvoorbeeld,

 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&amp;b, the output would be: Result = 0100 

Zoals we uit het bovenstaande resultaat kunnen zien, worden bits van beide variabelen één voor één vergeleken. Als de bit van beide variabelen 1 is, zou de uitvoer 1 zijn, anders 0.

Laten we de bitsgewijze AND-operator door het programma begrijpen.

 #include int main() { int a=6, b=14; // variable declarations printf(&apos;The output of the Bitwise AND operator a&amp;b is %d&apos;,a&amp;b); return 0; } 

In de bovenstaande code hebben we twee variabelen gemaakt, namelijk 'a' en 'b'. De waarden van 'a' en 'b' zijn respectievelijk 6 en 14. De binaire waarde van 'a' en 'b' is respectievelijk 0110 en 1110. Wanneer we de AND-operator tussen deze twee variabelen toepassen,

a EN b = 0110 && 1110 = 0110

Uitvoer

Bitwise-operator in C

Bitwise OR-operator

De bitsgewijze OR-operator wordt weergegeven door een enkel verticaal teken (|). Aan beide zijden van het (|)-symbool zijn twee integer-operands geschreven. Als de bitwaarde van een van de operanden 1 is, zou de uitvoer 1 zijn, anders 0.

Bijvoorbeeld,

 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 

Zoals we uit het bovenstaande resultaat kunnen zien, worden de bits van beide operanden één voor één vergeleken; als de waarde van een van beide bits 1 is, zou de uitvoer 1 zijn, anders 0.

Laten we de bitsgewijze OR-operator via een programma begrijpen.

 #include int main() int a=23,b=10; // variable declarations printf(&apos;The output of the Bitwise OR operator a 

Uitvoer

Bitwise-operator in C

Bitwise exclusieve OR-operator

De bitsgewijze exclusieve OR-operator wordt aangegeven met het (^)-symbool. Aan beide zijden van de exclusieve OR-operator worden twee operanden geschreven. Als de corresponderende bit van een van de operanden 1 is, zou de uitvoer 1 zijn, anders 0.

Bijvoorbeeld,

 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 

Zoals we uit het bovenstaande resultaat kunnen zien, worden de bits van beide operanden één voor één vergeleken; als de corresponderende bitwaarde van een van de operanden 1 is, dan zou de uitvoer 1 zijn, anders 0.

Laten we de bitsgewijze exclusieve OR-operator via een programma begrijpen.

 #include int main() { int a=12,b=10; // variable declarations printf(&apos;The output of the Bitwise exclusive OR operator a^b is %d&apos;,a^b); return 0; } 

Uitvoer

Bitwise-operator in C

Bitwise complement-operator

De bitsgewijze complementoperator wordt ook wel iemands-complementoperator genoemd. Het wordt weergegeven door het symbool tilde (~). Er is slechts één operand of variabele nodig en deze voert een complementaire bewerking uit op een operand. Wanneer we de complementbewerking op willekeurige bits toepassen, wordt 0 1 en wordt 1 0.

Bijvoorbeeld,

 If we have a variable named &apos;a&apos;, 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 

Zoals we uit het bovenstaande resultaat kunnen zien, wordt het bit gewijzigd in 0, anders 1, als het bit 1 is.

Laten we de complementoperator begrijpen via een programma.

 #include int main() { int a=8; // variable declarations printf(&apos;The output of the Bitwise complement operator ~a is %d&apos;,~a); return 0; } 

Uitvoer

Bitwise-operator in C

Operators voor bitsgewijze shift

Er bestaan ​​twee soorten bitsgewijze verschuivingsoperatoren bij het programmeren in C. De bitwise shift-operatoren verschuiven de bits naar links of naar rechts. Daarom kunnen we zeggen dat de bitwise shift-operator in twee categorieën is verdeeld:

  • Linker shift operator
  • Rechter shift operator

Linker shift operator

Het is een operator die het aantal bits naar links verschuift.

De syntaxis van de linkershiftoperator wordt hieronder gegeven:

 Operand &lt;&lt; n 

Waar,

Operand is een geheeltallige uitdrukking waarop we de shift-bewerking naar links toepassen.

n is het aantal bits dat moet worden verschoven.

pd samenvoegen

In het geval van de Left-shift-operator worden 'n'-bits naar de linkerkant verschoven. De 'n'-bits aan de linkerkant worden eruit gehaald en de 'n'-bits aan de rechterkant worden gevuld met 0.

Bijvoorbeeld,

 Suppose we have a statement: int a = 5; The binary representation of &apos;a&apos; is given below: a = 0101 If we want to left-shift the above representation by 2, then the statement would be: a &lt;&lt; 2; 0101&lt;<2 = 00010100 < pre> <p> <strong>Let&apos;s understand through a program.</strong> </p> <pre> #include int main() { int a=5; // variable initialization printf(&apos;The value of a&lt;<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 &gt;&gt; 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, &apos;n&apos; bits will be shifted on the right-side. The &apos;n&apos; bits on the right-side will be popped out, and &apos;n&apos; 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&gt;&gt;2; 0000 0111 &gt;&gt; 2 = 0000 0001 </pre> <p> <strong>Let&apos;s understand through a program.</strong> </p> <pre> #include int main() { int a=7; // variable initialization printf(&apos;The value of a&gt;&gt;2 is : %d &apos;, a&gt;&gt;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>

Waar,

Operand is een geheeltallige uitdrukking waarop we de rechtsverschuivingsbewerking toepassen.

N is het aantal bits dat moet worden verschoven.

In het geval van de rechtsverschuivingsoperator worden 'n' bits naar de rechterkant verschoven. De 'n'-bits aan de rechterkant worden eruit gehaald en de 'n'-bits aan de linkerkant worden gevuld met 0.

Bijvoorbeeld,

 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&gt;&gt;2; 0000 0111 &gt;&gt; 2 = 0000 0001 

Laten we het begrijpen via een programma.

 #include int main() { int a=7; // variable initialization printf(&apos;The value of a&gt;&gt;2 is : %d &apos;, a&gt;&gt;2); return 0; } 

Uitvoer

Bitwise-operator in C