logo

Bitwise Operator i C

De bitvise operatørene er operatørene som brukes til å utføre operasjonene på dataene på bitnivå. Når vi utfører bitvise operasjoner, er det også kjent som bit-nivå programmering. Den består av to sifre, enten 0 eller 1. Den brukes hovedsakelig i numeriske beregninger for å gjøre beregningene raskere.

Vi har forskjellige typer bitvise operatorer i programmeringsspråket C. Følgende er listen over bitvise operatører:

Operatør Betydningen av operatør
& Bitvis OG-operator
| Bitvis OR-operator
^ Bitvis eksklusiv OR-operatør
~ Ens komplementoperatør (unær operatør)
<< Venstre skiftoperatør
>> Høyre skiftoperatør

La oss se på sannhetstabellen til bitvise operatører.

X OG 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 OG-operator

Bitvis AND-operator er angitt med det enkle og-tegnet (&). To heltallsoperander er skrevet på begge sider av (&)-operatoren. Hvis de korresponderende bitene til begge operandene er 1, er utgangen av den bitvise OG-operasjonen 1; ellers ville utgangen vært 0.

java-matriser

For eksempel,

 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 observere fra resultatet ovenfor at biter av begge variablene sammenlignes en etter en. Hvis biten til begge variablene er 1, vil utgangen være 1, ellers 0.

La oss forstå den bitvise OG-operatoren gjennom 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 koden ovenfor har vi laget to variabler, dvs. 'a' og 'b'. Verdiene for 'a' og 'b' er henholdsvis 6 og 14. Den binære verdien av 'a' og 'b' er henholdsvis 0110 og 1110. Når vi bruker AND-operatoren mellom disse to variablene,

a OG b = 0110 && 1110 = 0110

Produksjon

Bitwise Operator i C

Bitvis OR-operator

Den bitvise ELLER-operatoren er representert av et enkelt vertikalt tegn (|). To heltallsoperander er skrevet på begge sider av (|)-symbolet. Hvis bitverdien til en av operandene er 1, vil utgangen være 1, ellers 0.

cpld vs FPGA

For eksempel,

 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 observere fra resultatet ovenfor at bitene til begge operandene sammenlignes én etter én; hvis verdien av en av bitene er 1, vil utgangen være 1 ellers 0.

La oss forstå den bitvise OR-operatoren gjennom et program.

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

Produksjon

Bitwise Operator i C

Bitvis eksklusiv OR-operatør

Bitvis eksklusiv OR-operator er angitt med (^) symbol. To operander er skrevet på begge sider av den eksklusive OR-operatøren. Hvis den tilsvarende biten til en av operandene er 1, vil utgangen være 1, ellers 0.

For eksempel,

 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 observere fra resultatet ovenfor at bitene til begge operandene sammenlignes én etter én; hvis den korresponderende bitverdien til noen av operandene er 1, vil utgangen være 1 ellers 0.

La oss forstå den bitvise eksklusive ELLER-operatøren gjennom et 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; } 

Produksjon

Bitwise Operator i C

Bitvis komplement operatør

Den bitvise komplementoperatoren er også kjent som ens komplementoperator. Det er representert med symbolet tilde (~). Den tar bare én operand eller variabel og utfører komplementoperasjon på en operand. Når vi bruker komplementoperasjonen på en hvilken som helst bit, blir 0 1 og 1 blir 0.

For eksempel,

15 av 100,00
 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 observere fra resultatet ovenfor at hvis biten er 1, blir den endret til 0 ellers 1.

La oss forstå komplementoperatøren gjennom et 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; } 

Produksjon

Bitwise Operator i C

Bitvise skiftoperatører

To typer bitvise skiftoperatorer finnes i C-programmering. De bitvise skiftoperatorene vil forskyve bitene enten på venstre eller høyre side. Derfor kan vi si at den bitvise skiftoperatøren er delt inn i to kategorier:

  • Venstreskiftsoperatør
  • Høyreskiftsoperatør

Venstreskiftsoperatør

Det er en operatør som flytter antall bits til venstre side.

Syntaksen til venstreskiftoperatoren er gitt nedenfor:

 Operand &lt;&lt; n 

Hvor,

Operand er et heltallsuttrykk som vi bruker venstreskiftoperasjonen på.

n er antall biter som skal forskyves.

I tilfellet med venstreskiftoperator, vil 'n' bits bli forskjøvet på venstre side. 'n'-bitene på venstre side vil bli trukket ut, og 'n'-bitene på høyre side er fylt med 0.

For eksempel,

 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>

Hvor,

Operand er et heltallsuttrykk som vi bruker høyreskiftoperasjonen på.

Linux kjøre cmd

N er antall biter som skal forskyves.

Når det gjelder høyreskiftoperatoren, vil 'n' bits bli forskjøvet på høyre side. 'n'-bitene på høyre side vil bli spratt ut, og 'n'-biter på venstre side er fylt med 0.

For eksempel,

 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 

La oss forstå gjennom et 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; } 

Produksjon

Bitwise Operator i C