logo

Bitenkénti operátor C-ben

A bitenkénti operátorok az adatok bitszintű műveleteinek végrehajtására használt operátorok. Amikor bitenkénti műveleteket hajtunk végre, akkor azt bitszintű programozásnak is nevezik. Két számjegyből áll, 0 vagy 1. Főleg numerikus számításoknál használják a számítások gyorsabbá tételére.

Különféle bitenkénti operátoraink vannak a C programozási nyelvben. A következő a bitenkénti operátorok listája:

Operátor Az operátor jelentése
& Bitenkénti ÉS operátor
| Bitenkénti VAGY operátor
^ Bitenkénti kizárólagos VAGY operátor
~ Egy komplement operátor (unáris operátor)
<< Bal váltókezelő
>> Jobb váltókezelő

Nézzük meg a bitenkénti operátorok igazságtáblázatát.

x ÉS 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

Bitenkénti ÉS operátor

A bitenkénti ÉS operátort egyetlen „és” jel (&) jelöli. Két egész operandust írunk az (&) operátor mindkét oldalára. Ha mindkét operandus megfelelő bitje 1, akkor a bitenkénti ÉS művelet kimenete 1; ellenkező esetben a kimenet 0 lenne.

java while ciklus

Például,

 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 

A fenti eredményből látható, hogy mindkét változó bitjeit egyenként hasonlítjuk össze. Ha mindkét változó bitje 1, akkor a kimenet 1, ellenkező esetben 0.

Értsük meg a bitenkénti ÉS operátort a programon keresztül.

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

A fenti kódban két változót hoztunk létre, azaz az „a”-t és „b”-t. Az „a” és „b” értéke 6, illetve 14. Az „a” és „b” bináris értéke 0110, illetve 1110. Amikor az ÉS operátort alkalmazzuk e két változó között,

a ÉS b = 0110 && 1110 = 0110

Kimenet

Bitenkénti operátor C-ben

Bitenkénti VAGY operátor

A bitenkénti VAGY operátort egyetlen függőleges jel (|) jelöli. A (|) szimbólum mindkét oldalára két egész operandus van írva. Ha bármelyik operandus bitértéke 1, akkor a kimenet 1, ellenkező esetben 0.

js globális változó

Például,

 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 

A fenti eredményből látható, hogy mindkét operandus bitjeit egyenként hasonlítjuk össze; Ha bármelyik bit értéke 1, akkor a kimenet 1, ellenkező esetben 0.

Értsük meg a bitenkénti VAGY operátort egy programon keresztül.

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

Kimenet

Bitenkénti operátor C-ben

Bitenkénti kizárólagos VAGY operátor

A bitenkénti kizárólagos VAGY operátort (^) szimbólum jelöli. A kizárólagos VAGY operátor mindkét oldalára két operandus van írva. Ha bármelyik operandus megfelelő bitje 1, akkor a kimenet 1, ellenkező esetben 0.

Például,

 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 

A fenti eredményből látható, hogy mindkét operandus bitjeit egyenként hasonlítjuk össze; ha bármelyik operandus megfelelő bitértéke 1, akkor a kimenet 1, ellenkező esetben 0.

Értsük meg a bitenkénti kizárólagos VAGY operátort egy programon keresztül.

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

Kimenet

Bitenkénti operátor C-ben

Bitenkénti komplement operátor

A bitenkénti komplement operátort egy komplement operátornak is nevezik. Ezt a tilde (~) szimbólum jelöli. Csak egy operandusra vagy változóra van szükség, és komplementműveletet hajt végre egy operanduson. Ha bármely bitre alkalmazzuk a komplementműveletet, akkor 0-ból 1, 1-ből 0 lesz.

Például,

java alapjai
 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 

A fenti eredményből látható, hogy ha a bit 1, akkor 0-ra, más 1-re változik.

Értsük meg a komplement operátort egy programon keresztül.

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

Kimenet

Bitenkénti operátor C-ben

Bitenkénti eltolási operátorok

A C programozásban kétféle bitenkénti eltolási operátor létezik. A bitenkénti eltolási operátorok a biteket a bal vagy a jobb oldalon tolják el. Ezért elmondhatjuk, hogy a bitenkénti eltolás operátora két kategóriába sorolható:

  • Bal váltókezelő
  • Jobb váltókezelő

Bal váltókezelő

Ez egy operátor, amely a bitek számát balra tolja.

A bal oldali eltolás operátor szintaxisa az alábbiakban látható:

 Operand &lt;&lt; n 

Ahol,

int char java

Az operandus egy egész kifejezés, amelyre a balra eltolás műveletet alkalmazzuk.

n az eltolni kívánt bitek száma.

A Left-shift operátor esetén az 'n' bitek a bal oldalon tolódnak el. A bal oldalon lévő 'n' bitek kiugrik, a jobb oldali 'n' bitek pedig 0-val vannak kitöltve.

Például,

 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>

Ahol,

Az operandus egy egész kifejezés, amelyen a jobbra eltolás műveletet alkalmazzuk.

N az eltolni kívánt bitek száma.

A jobb oldali eltolás operátora esetén az 'n' bitek a jobb oldalon tolódnak el. A jobb oldalon lévő 'n' bitek kiugrik, a bal oldali 'n' bitek pedig 0-val vannak kitöltve.

Például,

 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 

Értsük meg egy programon keresztül.

sztringben összehasonlítani
 #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; } 

Kimenet

Bitenkénti operátor C-ben