logo

Bitwise-operaattori C:ssä

Bittikohtaiset operaattorit ovat operaattoreita, joita käytetään suorittamaan operaatioita datalle bittitasolla. Kun suoritamme bittikohtaisia ​​operaatioita, sitä kutsutaan myös bittitason ohjelmoimiseksi. Se koostuu kahdesta numerosta, joko 0 tai 1. Sitä käytetään pääasiassa numeerisissa laskelmissa nopeuttamaan laskelmia.

Meillä on erilaisia ​​bittikohtaisia ​​operaattoreita C-ohjelmointikielessä. Seuraava on luettelo bittikohtaisista operaattoreista:

java arraylist lajittelu
Operaattori Operaattorin merkitys
& Bittikohtainen AND-operaattori
| Bittikohtainen OR-operaattori
^ Bittikohtainen yksinomainen OR-operaattori
~ Oman komplementtioperaattori (yksittäisoperaattori)
<< Vasen vaihdeoperaattori
>> Oikean vaihteen kuljettaja

Katsotaanpa bittioperaattoreiden totuustaulukkoa.

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

Bittikohtainen AND-operaattori

Bittikohtainen JA-operaattori on merkitty yhdellä et-merkillä (&). Kaksi kokonaislukuoperandia kirjoitetaan operaattorin (&) molemmille puolille. Jos molempien operandien vastaavat bitit ovat 1, niin bittikohtaisen JA-operaation tulos on 1; muuten lähtö olisi 0.

Esimerkiksi,

 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 

Kuten yllä olevasta tuloksesta voidaan havaita, molempien muuttujien bittejä verrataan yksitellen. Jos molempien muuttujien bitti on 1, tulos olisi 1, muuten 0.

Ymmärretään bittikohtainen AND-operaattori ohjelman kautta.

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

Yllä olevaan koodiin olemme luoneet kaksi muuttujaa, eli 'a' ja 'b'. A:n ja b:n arvot ovat 6 ja 14. 'a':n ja 'b':n binääriarvot ovat 0110 ja 1110. Kun käytämme AND-operaattoria näiden kahden muuttujan välillä,

a JA b = 0110 && 1110 = 0110

Lähtö

Bitwise-operaattori C:ssä

Bittikohtainen OR-operaattori

Bittikohtaista OR-operaattoria edustaa yksi pystymerkki (|). Kaksi kokonaislukuoperandia on kirjoitettu symbolin (|) molemmille puolille. Jos jonkin operandin bittiarvo on 1, lähtö olisi 1, muuten 0.

Esimerkiksi,

 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 

Kuten yllä olevasta tuloksesta voidaan havaita, että molempien operandien bittejä verrataan yksitellen; jos jommankumman bitin arvo on 1, lähtö olisi 1, muuten 0.

Ymmärretään bittikohtainen OR-operaattori ohjelman kautta.

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

Lähtö

Bitwise-operaattori C:ssä

Bittikohtainen yksinomainen OR-operaattori

Bittikohtainen poissulkeva OR-operaattori on merkitty symbolilla (^). Kaksi operandia on kirjoitettu yksinomaisen OR-operaattorin molemmille puolille. Jos jonkin operandin vastaava bitti on 1, lähtö olisi 1, muuten 0.

Esimerkiksi,

 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 

Kuten yllä olevasta tuloksesta voidaan havaita, että molempien operandien bittejä verrataan yksitellen; jos jonkin operandin vastaava bittiarvo on 1, niin lähtö olisi 1, muuten 0.

Ymmärretään bittikohtaisesti poissulkeva OR-operaattori ohjelman kautta.

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

Lähtö

Bitwise-operaattori C:ssä

Bittikomplementtioperaattori

Bittikohtaista komplementtioperaattoria kutsutaan myös komplementtioperaattoriksi. Sitä edustaa symboli tilde (~). Se vaatii vain yhden operandin tai muuttujan ja suorittaa komplementtioperaation operandille. Kun käytämme komplementtioperaatiota mihin tahansa bittiin, 0:sta tulee 1 ja 1:stä 0.

Esimerkiksi,

 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 

Kuten yllä olevasta tuloksesta voidaan havaita, että jos bitti on 1, niin se muuttuu arvoksi 0 muu 1.

Ymmärretään komplementtioperaattori ohjelman kautta.

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

Lähtö

Bitwise-operaattori C:ssä

Bittisiirtooperaattorit

C-ohjelmoinnissa on kahdenlaisia ​​bittisuuntaisia ​​siirtooperaattoreita. Bittisiirtooperaattorit siirtävät bittejä joko vasemmalla tai oikealla puolella. Siksi voimme sanoa, että bittisuuntainen siirtooperaattori on jaettu kahteen luokkaan:

  • Vasemman vaihteen operaattori
  • Oikean vaihteen kuljettaja

Vasemman vaihteen operaattori

matematiikka satunnainen java

Se on operaattori, joka siirtää bittien lukumäärän vasemmalle.

Vasemman vaihto-operaattorin syntaksi on annettu alla:

 Operand &lt;&lt; n 

Missä,

Operandi on kokonaislukulauseke, johon sovelletaan vasemmanpuoleista siirtotoimintoa.

n on siirrettävien bittien määrä.

Vasemman siirto -operaattorin tapauksessa 'n'-bittiä siirretään vasemmalla puolella. Vasemmalla puolella olevat n-bitit ponnataan ulos ja oikean puolen n-bitit täytetään nollalla.

Esimerkiksi,

 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>

Missä,

Operandi on kokonaislukulauseke, johon sovelletaan oikealle-siirtotoimintoa.

N on siirrettävien bittien määrä.

Oikean siirtooperaattorin tapauksessa 'n'-bittiä siirretään oikealle puolelle. Oikean puolen 'n'-bitit ponnahtaa esiin ja vasemman puolen 'n'-bitit täytetään nollalla.

Esimerkiksi,

 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 

Ymmärretään ohjelman kautta.

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

Lähtö

Bitwise-operaattori C:ssä