Operatori bit a bit in linguaggio C

Bitwise Operators C Language

Gli operatori bit a bit, spesso noti come codifica a livello di bit, sono stati scartati per interpretare i dati solo a livello di bit. Bitwise esegue operazioni su uno o anche ulteriori modelli di bit e numeri binari a livello di bit. Questi sono stati utilizzati per accelerare la progressione della stima dei calcoli numerici. Consiste di due numeri, uno dei quali è 0 e l'altro è 1. Ecco alcuni operatori bit a bit di cui parleremo nel nostro articolo.

Accedi dal tuo sistema Linux e prova la scorciatoia Ctrl+Alt+T per aprire il terminale della console. Avremo alcuni esempi per approfondire le operazioni degli operatori bit a bit nel linguaggio C. Elaboriamo separatamente ogni operatore bit a bit.



AND bit a bit:

L'operatore bit a bit è stato utilizzato per replicare un bit al risultato se quel bit è presente in entrambi gli operandi reciproci. C o C++ richiede 2 operandi che eseguono AND su ciascun bit di quei due interi. AND bit a bit esiti 1 quando entrambi i bit hanno un valore di 1. Quindi, per comprendere il funzionamento, creare e aprire un file di tipo C utilizzando l'editor Nano. Per questo, dobbiamo consumare le istruzioni nano nella shell come segue:



$nanotest.c



Il codice per l'operatore AND bit per bit è stato visualizzato nell'immagine sottostante. Tutto quello che devi fare è scrivere questo codice nel file dell'editor GNU nano test.c così com'è. Questo codice ha la libreria di intestazioni stdio.h senza la quale non possiamo ottenere la codifica nella programmazione C. Quindi abbiamo creato un metodo principale con il suo tipo restituito come intero. Nel linguaggio C, l'esecuzione del codice avviene tramite il metodo main. Quindi abbiamo dichiarato due variabili di tipo intero, x e y, con i valori 35 e 13 di conseguenza. Successivamente, è stata specificata un'altra variabile intera con zero come valore. Useremo le prime due variabili intere e applicheremo l'operatore AND bit per bit tra di esse. Questo lavoro è stato svolto nella riga successiva in cui l'operatore AND è stato utilizzato come & e il valore risultante verrà memorizzato nella variabile nulla z. Quindi abbiamo usato l'istruzione print per mostrare il valore risultante nella schermata del terminale e il metodo principale si chiude. Salva il tuo file usando la scorciatoia GNU Ctrl+S e poi esci dall'editor nano tramite Ctrl+X dalla tastiera della macchina da scrivere.

Quindi, è il momento di compilare il codice sopra dopo aver salvato il file. Usa l'istruzione gcc nella shell della tua console mentre usi il nome di un file come test.c o come hai chiamato il file e premi il tasto Invio. Puoi vedere che non mostra alcun errore; questo significa che il codice è corretto manualmente.



$gcctest.c

Dopo aver compilato il codice, è ora di eseguire il codice ora. A tale scopo, eseguire la query indicata di seguito nella shell. L'output mostra 1 come risultato. Ciò significa che entrambe le nostre variabili intere hanno 1 in uno dei loro bit. Ecco perché restituisce 1.

$./a.out

OR bit a bit:

Ora viene elaborato l'operatore OR bit a bit. L'operatore bit a bit restituisce 1 come risultato quando uno dei suoi bit è 1. Se entrambi i bit di due interi sono 0, allora restituisce 0. Dopo aver ottenuto tutti i bit, verrà generato un insieme di bit. Dobbiamo vedere quale numero hanno formato quei bit. Quindi, apri prima lo stesso documento test.c. Digita e salva il codice mostrato di seguito nel file GNU usando il tasto Ctrl+S. Il codice è quasi lo stesso dell'esempio dell'operatore AND bit per bit sopra. Questa volta abbiamo appena cambiato il valore dell'intero x in 47 e abbiamo usato l'operatore OR, ad es. | tra le due variabili. Chiudere il file per compilare il codice.

Dopo aver eseguito con successo il documento test.c, mostra il 47 bit di output.

$./a.out

XOR bit a bit:

L'operatore bit a bit restituisce 1 quando entrambi i bit numerici sono diversi. Quindi, quando i bit sono gli stessi, restituirà 0. Il segno dell'operatore ^ rappresenterà l'operatore bit a bit. Quindi, di nuovo, apri il documento e scrivi lo stesso vecchio codice nell'editor di file GNU. Questa volta abbiamo utilizzato gli operatori ^ all'interno di due variabili intere e il risultato verrà memorizzato nella variabile z durante la stampa nel terminale.

Compilare ed eseguire il file test.c restituisce 34 come risultato. Ciò significa che il nuovo intero 34 viene generato dopo che l'operatore XOR è stato applicato a due variabili intere.

$./a.out

Complemento bit a bit:

Questo operatore verrà applicato solo a una singola variabile e ripristinerà il valore del numero di bit. Ad esempio, cambierà il bit 0 in 1 e 1 in 0 bit. Scrivi lo stesso codice nello stesso file ma con una piccola modifica alla riga 6. Abbiamo assegnato il contrario di x a z.

Compila il file ed eseguilo. In C, il risultato del complemento Bitwise è stato incrementato di 1 con segno negativo.

Operatore di turno a sinistra:

Sposterà il posto dei bit in una certa misura. Lo stesso codice può essere visualizzato nell'immagine allegata sotto. In questo esempio, sposteremo di 2 bit a sinistra.

L'output mostra il 188 come un nuovo valore generato.

$./a.out

Operatore di spostamento a destra:

Funziona allo stesso modo del turno di sinistra ma nella direzione opposta, come mostrato nel codice qui sotto.

Questa volta abbiamo 11 come output spostando 2 bit a destra.

$./a.out

Conclusione:

Abbiamo trattato tutti i 6 operatori bit a bit di base nel nostro codice del linguaggio C in questo articolo. Spero che tu ottenga quello che volevi dalla nostra guida.