logo

Bitni operator v C

Bitni operaterji so operaterji, ki se uporabljajo za izvajanje operacij s podatki na bitni ravni. Ko izvajamo bitne operacije, je to znano tudi kot programiranje na bitni ravni. Sestavljen je iz dveh števk, 0 ali 1. Uporablja se predvsem v numeričnih izračunih za hitrejše izračune.

V programskem jeziku C imamo različne vrste bitnih operatorjev. Sledi seznam bitnih operaterjev:

Operater Pomen operatorja
& Bitni operator IN
| Bitni operator ALI
^ Bitni izključni operator ALI
~ Operator enega komplementa (unarni operator)
<< Levi menjalnik
>> Operater desnega premika

Poglejmo resničnostno tabelo bitnih operaterjev.

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

Bitni operator IN

Bitni operator IN je označen z enim znakom & (&). Na obeh straneh operatorja (&) sta zapisana dva cela operanda. Če sta ustrezna bita obeh operandov 1, potem je rezultat bitne operacije IN 1; drugače bi bil rezultat 0.

na primer

 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 

Kot lahko opazimo iz zgornjega rezultata, se biti obeh spremenljivk primerjajo enega za drugim. Če je bit obeh spremenljivk 1, bi bil izhod 1, sicer 0.

Razumejmo bitni operator IN skozi program.

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

V zgornji kodi smo ustvarili dve spremenljivki, tj. 'a' in 'b'. Vrednosti 'a' in 'b' sta 6 oziroma 14. Binarni vrednosti 'a' in 'b' sta 0110 oziroma 1110. Ko med tema dvema spremenljivkama uporabimo operator IN,

a IN b = 0110 && 1110 = 0110

Izhod

Bitni operator v C

Bitni operator ALI

Bitni operator ALI je predstavljen z enim navpičnim znakom (|). Na obeh straneh simbola (|) sta zapisana dva cela operanda. Če je bitna vrednost katerega koli operanda 1, bi bil izhod 1, sicer 0.

na primer

java združevanje nizov
 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 

Kot lahko opazimo iz zgornjega rezultata, se bita obeh operandov primerjata enega za drugim; če je vrednost enega bita 1, bi bil izhod 1, sicer 0.

Razumejmo bitni operator ALI s pomočjo programa.

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

Izhod

Bitni operator v C

Bitni izključni operator ALI

Bitni izključni operator ALI je označen s simbolom (^). Dva operanda sta zapisana na obeh straneh izključnega operatorja ALI. Če je ustrezen bit katerega koli od operandov 1, bi bil izhod 1, sicer 0.

na primer

 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 

Kot lahko opazimo iz zgornjega rezultata, se bita obeh operandov primerjata enega za drugim; če je ustrezna bitna vrednost katerega koli operanda 1, bi bil izhod 1, sicer 0.

Razumejmo bitni izključni operator ALI prek programa.

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

Izhod

Bitni operator v C

Operator bitnega komplementa

Operator bitnega komplementa je znan tudi kot operator enega komplementa. Predstavljen je s simbolom tilda (~). Vzame samo en operand ali spremenljivko in izvede operacijo komplementa na operandu. Ko uporabimo operacijo komplementa na katerem koli bitu, potem 0 postane 1 in 1 postane 0.

na primer

 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 

Kot lahko opazimo iz zgornjega rezultata, če je bit 1, potem se spremeni v 0, sicer 1.

Razumejmo operator komplementa skozi 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; } 

Izhod

Bitni operator v C

Operatorji bitnega premika

V programiranju C obstajata dve vrsti operaterjev bitnega premika. Operatorji bitnega premika bodo premaknili bite na levo ali desno stran. Zato lahko rečemo, da je operator bitnega premika razdeljen v dve kategoriji:

  • Levi operater
  • Operator desnega premika

Levi operater

za zanko v c

Je operator, ki premakne število bitov na levo stran.

Sintaksa operatorja levega premika je podana spodaj:

 Operand &lt;&lt; n 

Kje,

Operand je celoštevilski izraz, na katerem uporabimo operacijo premika v levo.

n je število bitov, ki jih je treba premakniti.

V primeru operatorja premika v levo bo 'n' bitov premaknjenih na levo stran. 'N' bitov na levi strani bo izstopilo, 'n' bitov na desni strani pa bo zapolnjenih z 0.

na primer

 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>

Kje,

Operand je celoštevilski izraz, na katerem uporabimo operacijo desnega premika.

N je število bitov, ki jih je treba premakniti.

V primeru operatorja desnega premika bo 'n' bitov premaknjenih na desno stran. 'N' bitov na desni strani bo izstopilo, 'n' bitov na levi strani pa bo zapolnjenih z 0.

na primer

 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 

Razumejmo skozi 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; } 

Izhod

Bitni operator v C