Operatori bit per bit in C [con esempio di codifica]
Pubblicato: 2020-10-26Sommario
introduzione
Gli operatori sono componenti essenziali di ogni linguaggio di programmazione. Sono i simboli utilizzati per ottenere determinate operazioni di programmazione logiche, matematiche o di altro tipo. C fornisce vari operatori per eseguire più operazioni, come la manipolazione aritmetica, logica e di bit. Ci sono otto diversi tipi di operatori in C. Questi sono:
- Operatori aritmetici in C
- Operatori logici in C
- Operatore condizionale in C
- Operatori relazionali in C
- Operatori di incremento e decremento in C
- Operatori bit a bit in C
- Operatori di assegnazione in C
- Operatori speciali in C
In questo articolo imparerai gli operatori Bitwise in C e come implementarli.
Che cos'è un operatore bit per bit?
L' operatore Bitwise in C è un tipo di operatore che opera su matrici di bit, stringhe di bit e modifica di valori binari con singoli bit a livello di bit. Per la gestione delle operazioni relative all'elettronica e all'IoT, i programmatori utilizzano operatori bit per bit. Può funzionare più velocemente a livello di bit.
L' operatore bit a bit in C esegue la sua operazione sui singoli bit del suo operando, dove gli operandi sono valori o espressioni su cui opera un operatore. Questi operatori vengono utilizzati anche per eseguire le azioni principali e le operazioni aritmetiche di alto livello che richiedono il supporto diretto del processore. Possiamo ulteriormente sottocategorizzare gli operatori bit per bit in tre sottotipi in base ai loro principi di funzionamento, logici (AND a bit, OR e XOR), Maiusc (Maiusc a destra e Maiusc a sinistra) e Complemento (NO a bit).
Ci sono sei diversi operatori Bitwise in C . Questi sono:
· Operatore AND bit per bit (&)

· Operatore OR bit per bit (|)
· Operatore OR esclusivo bit per bit (^)
· Operatore Binary One's Complement o Bitwise NOT (~)
· Operatore di spostamento a sinistra bit per bit (<<)
· Operatore di spostamento a destra bit per bit (>>)
Utilizzando gli operatori bit per bit, i programmatori possono modificare i singoli bit di qualsiasi valore contenuto nell'operando. Possiamo visualizzare un singolo byte di memoria del computer come 8 bit che indica lo stato vero o falso di 8 flag. Gli operatori bit per bit vengono generalmente applicati per definire i valori di flag nei sistemi operativi e nel software del driver. Ad esempio, in una proprietà di file, la modalità di sola lettura è espressa concettualmente come un flag bit nel sistema operativo e l'operatore bit per bit viene utilizzato per alternare tra il valore vero e quello falso.
Ecco una tabella che mostra come risulta il calcolo degli operatori bit per bit.
X | y | x e y | x | y | x ^ y |
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
Esistono sei diversi tipi di operatori Bitwise in C . Questi sono:
Bitwise AND (&) in C: il compilatore C riconosce Bitwise AND con & operatore. Richiede due operandi ed esegue l'operazione AND per ogni bit dei due numeri di operandi. È un operatore binario. L'output di questo operatore risulterà in 1 solo se entrambi i bit sono 1.
Bitwise OR (|) in C: il compilatore C riconosce Bitwise OR con | operatore. Richiede due operandi ed esegue l'operazione OR per ogni bit dei due numeri di operandi. È anche un operatore binario. L'output di questo operatore risulterà in 1 se uno qualsiasi dei due bit è 1.

Bitwise XOR (^) in C: il compilatore C riconosce Bitwise XOR con ^ operatore. Prende due operandi ed esegue l'operazione XOR per ogni bit dei due numeri di operandi. È anche un operatore binario. L'output di questo operatore risulterà in 1 se entrambi i bit hanno valori diversi.
Operatore Binary One's Complement o Bitwise NOT (~) in C: il compilatore C riconosce Bitwise NOT con l'operatore ~. Prende solo un operando ed esegue l'inversione di tutte le sue cifre. È un operatore unario. L'output di questo operatore invertirà tutti i bit esistenti di quell'operando.
Operatore di spostamento a sinistra bit per bit (<<) in C: il compilatore C riconosce l' operazione di spostamento a sinistra con questo <<. Richiede solo due operandi e sposta a sinistra tutti i bit del primo operando. Il secondo operando decide quanti numeri di posti questo operatore sposterà i suoi bit. È un operatore binario.
Bit per bit Operatore di spostamento a destra (>>) in C: il compilatore C riconosce l'operazione di spostamento a sinistra con questo >>. Richiede solo due operandi e sposta a destra tutti i bit del primo operando. Il secondo operando decide quanti numeri di posti questo operatore sposterà i suoi bit. È un operatore binario.
Leggi: Operatori in Python: una guida per principianti all'aritmetica, relazionale, logica e altro
Programma per Operatore Bitwise in C
Diamo ora un'occhiata al programma che utilizza tutti gli operatori bit per bit.
#include <stdio.h>
int principale()
{
carattere senza segno x = 20, y = 21; // x = 20 (00010100), y = 21 (00010101)
int g = 0;
g = x e y; /* 20 = 010100 */
printf(”Il risultato di Bitwise AND è %d \n”, g );
g = x | si; /* 21 = 010101 */
printf(”Il risultato di Bitwise OR è %d \n”, g );
g = x ^ y; /* 1 = 0001 */
printf(”Il risultato di Bitwise XOR è %d \n”, g );
g = ~x;
printf(”Il risultato di Bitwise NOT è %d \n”, g );
g = x << 1;
printf(”Il risultato di Bitwise Left Shift is %d \n”, g );
g = x >> 1;
printf(”Il risultato di Bitwise Right Shift is %d \n”, g );
restituire 0;
}
PRODUZIONE:
Il risultato di Bitwise AND è 20
Il risultato di Bitwise OR è 21
Il risultato di Bitwise XOR è 1
Il risultato di Bitwise NOT è -21

Il risultato di Bitwise Left Shift è 40
Il risultato di Bitwise Right Shift è 10
Leggi anche: Tutorial Python: configurazione, strumenti, funzionalità, applicazioni, vantaggi, confronto
Conclusione
Gli operatori bit per bit sono un particolare tipo di operatori in C utilizzati per la programmazione a livello di bit. È essenziale conoscere l'uso dell'operatore bit per bit poiché offre un modo efficiente per risparmiare spazio nella rappresentazione dei dati. I programmatori utilizzano questi operatori in vari campi, come la programmazione di sistemi, la programmazione incorporata e la progettazione di protocolli. Quindi, i programmatori devono conoscerne l'uso.
upGrad porta la programmazione con C e molto altro con il diploma PG di upGrad in specializzazione in sviluppo software in Full Stack Development . Un programma per farti emergere come sviluppatore full stack e imparare a costruire alcune delle fantastiche applicazioni. È un ampio programma di 12 mesi che include il lavoro su progetti e incarichi dal vivo e anche la formazione di 15 linguaggi e strumenti di programmazione. Insieme ad esso, ha un supporto professionale continuo con finti colloqui e assistenza sul lavoro.