logo

Bitwise Operator i C

De bitvise operatorer er de operatorer der bruges til at udføre operationerne på dataene på bitniveau. Når vi udfører de bitvise operationer, så er det også kendt som bit-niveau programmering. Den består af to cifre, enten 0 eller 1. Den bruges hovedsageligt i numeriske beregninger for at gøre beregningerne hurtigere.

Vi har forskellige typer bitvise operatorer i programmeringssproget C. Følgende er listen over de bitvise operatorer:

Operatør Betydning af operatør
& Bitvis OG operator
| Bitvis ELLER-operator
^ Bitvis eksklusiv ELLER-operatør
~ Ens komplementoperator (unær operator)
<< Venstreskifteoperatør
>> Højreskifteoperatør

Lad os se på sandhedstabellen for de bitvise operatorer.

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 angivet med det enkelte og-tegn (&). To heltalsoperander er skrevet på begge sider af (&) operatoren. Hvis de tilsvarende bits af begge operander er 1, så er outputtet af den bitvise OG-operation 1; ellers ville outputtet være 0.

fcfs

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 ovenstående resultat, sammenlignes bits af begge variabler en efter en. Hvis bit af begge variabler er 1, ville outputtet være 1, ellers 0.

Lad os forstå den bitvise OG-operator gennem 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 ovenstående kode har vi oprettet to variable, dvs. 'a' og 'b'. Værdierne for 'a' og 'b' er henholdsvis 6 og 14. Den binære værdi af 'a' og 'b' er henholdsvis 0110 og 1110. Når vi anvender AND-operatoren mellem disse to variable,

a OG b = 0110 && 1110 = 0110

Produktion

Bitwise Operator i C

Bitvis ELLER-operator

Den bitvise OR-operator er repræsenteret af et enkelt lodret tegn (|). To heltalsoperander er skrevet på begge sider af (|) symbolet. Hvis bitværdien af ​​en af ​​operanderne er 1, ville outputtet 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 ovenstående resultat, sammenlignes bits af begge operander en efter en; hvis værdien af ​​en bit er 1, ville outputtet være 1 ellers 0.

Lad os forstå den bitvise OR-operator gennem et 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 eksklusiv ELLER-operatør

Bitvist eksklusiv OR-operator er angivet med (^) symbol. To operander er skrevet på begge sider af den eksklusive OR-operatør. Hvis den tilsvarende bit af en af ​​operanderne er 1, vil outputtet 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 ovenstående resultat, sammenlignes bits af begge operander en efter en; hvis den tilsvarende bitværdi for en af ​​operanderne er 1, ville outputtet være 1 ellers 0.

Lad os forstå den bitvise eksklusive OR-operatør gennem 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; } 

Produktion

Bitwise Operator i C

Bitvis komplement operatør

Den bitvise komplementoperator er også kendt som ens komplementoperator. Det er repræsenteret ved symbolet tilde (~). Det tager kun én operand eller variabel og udfører komplementoperation på en operand. Når vi anvender komplementoperationen på en hvilken som helst bit, så bliver 0 til 1 og 1 bliver 0.

For eksempel,

bash variabel
 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 ovenstående resultat, at hvis bit er 1, så bliver det ændret til 0 ellers 1.

Lad os forstå komplementoperatøren gennem 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; } 

Produktion

Bitwise Operator i C

Bitvise skiftoperatører

Der findes to typer bitvise skiftoperatorer i C-programmering. De bitvise skiftoperatorer vil flytte bits enten på venstre eller højre side. Derfor kan vi sige, at den bitvise skiftoperator er opdelt i to kategorier:

  • Venstreskiftsoperatør
  • Højreskiftsoperatør

Venstreskiftsoperatør

Det er en operator, der flytter antallet af bits til venstre side.

Syntaks for venstreskift-operatoren er angivet nedenfor:

 Operand &lt;&lt; n 

Hvor,

Operand er et heltalsudtryk, hvorpå vi anvender venstreforskydningsoperationen.

n er antallet af bit, der skal forskydes.

I tilfælde af venstreskift-operator vil 'n'-bits blive forskudt på venstre side. 'n' bits på venstre side vil blive poppet ud, og 'n' bits på højre side er fyldt 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 heltalsudtryk, som vi anvender højreskiftoperationen på.

strint til int

N er antallet af bit, der skal forskydes.

I tilfældet med højreskiftoperatoren vil 'n' bits blive forskudt på højre side. 'n' bits på højre side vil blive poppet ud, og 'n' bits på venstre side er fyldt 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 

Lad os forstå gennem 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; } 

Produktion

Bitwise Operator i C