logo

Operatore bit a bit in C

Gli operatori bit a bit sono gli operatori utilizzati per eseguire le operazioni sui dati a livello di bit. Quando eseguiamo le operazioni bit a bit, è anche nota come programmazione a livello di bit. È composto da due cifre, 0 o 1. Viene utilizzato principalmente nei calcoli numerici per rendere i calcoli più veloci.

Abbiamo diversi tipi di operatori bit a bit nel linguaggio di programmazione C. Di seguito è riportato l'elenco degli operatori bit a bit:

Operatore Significato dell'operatore
& Operatore AND bit a bit
| Operatore OR bit a bit
^ Operatore OR esclusivo bit per bit
~ Operatore del complemento a uno (operatore unario)
<< Operatore di turno a sinistra
>> Operatore di spostamento a destra

Diamo un'occhiata alla tabella di verità degli operatori bit a bit.

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

Operatore AND bit a bit

L'operatore AND bit per bit è indicato dal singolo segno di e commerciale (&). Due operandi interi vengono scritti su entrambi i lati dell'operatore (&). Se i bit corrispondenti di entrambi gli operandi sono 1, l'output dell'operazione AND bit a bit è 1; in caso contrario, l'output sarebbe 0.

stampa da Java

Per esempio,

 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 

Come possiamo osservare dal risultato sopra, i bit di entrambe le variabili vengono confrontati uno per uno. Se il bit di entrambe le variabili è 1 l'output sarà 1, altrimenti 0.

Comprendiamo l'operatore AND bit a bit attraverso il programma.

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

Nel codice precedente, abbiamo creato due variabili, ovvero 'a' e 'b'. I valori di 'a' e 'b' sono rispettivamente 6 e 14. Il valore binario di 'a' e 'b' sono rispettivamente 0110 e 1110. Quando applichiamo l'operatore AND tra queste due variabili,

a E b = 0110 && 1110 = 0110

Produzione

Operatore bit a bit in C

Operatore OR bit a bit

L'operatore OR bit per bit è rappresentato da un singolo segno verticale (|). Due operandi interi sono scritti su entrambi i lati del simbolo (|). Se il valore del bit di uno qualsiasi degli operandi è 1, l'output sarà 1, altrimenti 0.

java string.format

Per esempio,

 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 

Come possiamo osservare dal risultato precedente, i bit di entrambi gli operandi vengono confrontati uno per uno; se il valore di uno dei bit è 1, l'uscita sarebbe 1 altrimenti 0.

Comprendiamo l'operatore OR bit a bit attraverso un programma.

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

Produzione

Operatore bit a bit in C

Operatore OR esclusivo bit per bit

L'operatore OR esclusivo bit per bit è indicato dal simbolo (^). Due operandi sono scritti su entrambi i lati dell'operatore OR esclusivo. Se il bit corrispondente di uno qualsiasi degli operandi è 1, l'output sarà 1, altrimenti 0.

Per esempio,

 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 

Come possiamo osservare dal risultato precedente, i bit di entrambi gli operandi vengono confrontati uno per uno; se il valore del bit corrispondente di uno qualsiasi degli operandi è 1, l'uscita sarebbe 1 altrimenti 0.

Comprendiamo l'operatore OR esclusivo bit per bit attraverso un programma.

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

Produzione

Operatore bit a bit in C

Operatore di complemento bit a bit

L'operatore di complemento bit a bit è noto anche come operatore di complemento a uno. È rappresentato dal simbolo tilde (~). Richiede solo un operando o una variabile ed esegue l'operazione di complemento su un operando. Quando applichiamo l'operazione di complemento su qualsiasi bit, 0 diventa 1 e 1 diventa 0.

Per esempio,

bf e df
 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 

Come possiamo osservare dal risultato precedente, se il bit è 1, viene cambiato in 0 altrimenti 1.

Comprendiamo l'operatore complemento attraverso un programma.

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

Produzione

Operatore bit a bit in C

Operatori di spostamento bit per bit

Nella programmazione C esistono due tipi di operatori di spostamento bit a bit. Gli operatori di spostamento bit a bit spostano i bit sul lato sinistro o sul lato destro. Pertanto possiamo dire che l'operatore di spostamento bit per bit si divide in due categorie:

  • Operatore con spostamento a sinistra
  • Operatore di spostamento a destra

Operatore con spostamento a sinistra

È un operatore che sposta il numero di bit a sinistra.

La sintassi dell'operatore di spostamento a sinistra è riportata di seguito:

 Operand &lt;&lt; n 

Dove,

L'operando è un'espressione intera su cui applichiamo l'operazione di spostamento a sinistra.

n è il numero di bit da spostare.

Nel caso dell'operatore di spostamento a sinistra, 'n' bit verranno spostati sul lato sinistro. I bit 'n' sul lato sinistro verranno visualizzati e i bit 'n' sul lato destro verranno riempiti con 0.

Per esempio,

 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>

Dove,

L'operando è un'espressione intera su cui applichiamo l'operazione di spostamento a destra.

Sri Ramanujan

N è il numero di bit da spostare.

Nel caso dell'operatore di spostamento a destra, 'n' bit verranno spostati a destra. I bit 'n' sul lato destro verranno visualizzati e i bit 'n' sul lato sinistro verranno riempiti con 0.

Per esempio,

 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 

Capiamolo attraverso un programma.

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

Produzione

Operatore bit a bit in C