logo

Bitwise Operator i C

De bitvisa operatorerna är de operatorer som används för att utföra operationerna på data på bitnivå. När vi utför de bitvisa operationerna kallas det också för bitnivåprogrammering. Den består av två siffror, antingen 0 eller 1. Den används främst i numeriska beräkningar för att göra beräkningarna snabbare.

Vi har olika typer av bitvisa operatorer i programmeringsspråket C. Följande är listan över de bitvisa operatorerna:

Operatör Betydelse av operatör
& Bitvis OCH-operator
| Bitvis ELLER-operator
^ Bitvis exklusiv ELLER-operatör
~ Ens komplementoperator (unär operator)
<< Vänster skiftförare
>> Högerväxlingsförare

Låt oss titta på sanningstabellen för de bitvisa operatorerna.

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

Bitvis OCH-operator

Bitvis AND-operator betecknas med det enkla et-tecken (&). Två heltalsoperander skrivs på båda sidor av (&)-operatorn. Om de motsvarande bitarna för båda operanderna är 1, så är utsignalen från den bitvisa OCH-operationen 1; annars skulle utgången vara 0.

Till exempel,

 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 

Som vi kan observera från ovanstående resultat att bitar av båda variablerna jämförs en efter en. Om biten för båda variablerna är 1 så skulle utdata vara 1, annars 0.

Låt oss förstå den bitvisa AND-operatorn genom programmet.

 #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; } 

I ovanstående kod har vi skapat två variabler, dvs 'a' och 'b'. Värdena på 'a' och 'b' är 6 respektive 14. Det binära värdet för 'a' och 'b' är 0110 respektive 1110. När vi tillämpar AND-operatorn mellan dessa två variabler,

a OCH b = 0110 && 1110 = 0110

Produktion

Bitwise Operator i C

Bitvis ELLER-operator

Den bitvisa ELLER-operatorn representeras av ett enda vertikalt tecken (|). Två heltalsoperander skrivs på båda sidor av (|)-symbolen. Om bitvärdet för någon av operanderna är 1, så skulle utsignalen vara 1, annars 0.

java slumptal

Till exempel,

 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 

Som vi kan observera från ovanstående resultat att bitarna för båda operanderna jämförs en efter en; om värdet på endera biten är 1, så skulle utsignalen vara 1 annars 0.

Låt oss förstå den bitvisa ELLER-operatorn genom ett program.

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

Produktion

Bitwise Operator i C

Bitvis exklusiv ELLER-operatör

Bitvis exklusiv OR-operator betecknas med (^) symbol. Två operander skrivs på båda sidor av den exklusiva OR-operatören. Om motsvarande bit av någon av operanderna är 1 så skulle utsignalen vara 1, annars 0.

Till exempel,

 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 

Som vi kan observera från ovanstående resultat att bitarna för båda operanderna jämförs en efter en; om motsvarande bitvärde för någon av operanderna är 1, så skulle utsignalen vara 1 annars 0.

Låt oss förstå den bitvis exklusiva ELLER-operatören genom ett program.

 #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; } 

Produktion

Bitwise Operator i C

Bitvis komplementoperatör

Den bitvisa komplementoperatorn är också känd som ens komplementoperator. Den representeras av symbolen tilde (~). Den tar bara en operand eller variabel och utför komplementoperation på en operand. När vi tillämpar komplementoperationen på vilka bitar som helst, blir 0 1 och 1 blir 0.

Till exempel,

 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 

Som vi kan observera från ovanstående resultat att om biten är 1, så ändras den till 0 annars 1.

Låt oss förstå komplementoperatören genom ett program.

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

Produktion

Bitwise Operator i C

Bitvis skiftoperatorer

Två typer av bitvisa skiftoperatorer finns i C-programmering. De bitvisa skiftoperatorerna kommer att flytta bitarna antingen på vänster eller höger sida. Därför kan vi säga att den bitvisa skiftoperatören är indelad i två kategorier:

  • Vänsterskiftsförare
  • Högerväxlad operatör

Vänsterskiftsförare

Det är en operatör som flyttar antalet bitar till vänster.

Syntaxen för vänsterskiftsoperatorn ges nedan:

 Operand &lt;&lt; n 

Var,

Operand är ett heltalsuttryck på vilket vi tillämpar vänsterskiftningsoperationen.

n är antalet bitar som ska skiftas.

I fallet med vänsterväxlingsoperator kommer 'n' bitar att skiftas på vänster sida. 'n'-bitarna på vänster sida kommer att poppas ut och 'n'-bitar på höger sida fylls med 0.

Till exempel,

 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>

Var,

Operand är ett heltalsuttryck på vilket vi tillämpar högerskiftsoperationen.

N är antalet bitar som ska skiftas.

I fallet med högerskiftsoperatorn kommer 'n' bitar att skiftas på höger sida. 'n'-bitarna på höger sida kommer att poppas ut, och 'n'-bitar på vänster sida fylls med 0.

Till exempel,

 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 

Låt oss förstå genom ett program.

 #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; } 

Produktion

Bitwise Operator i C