Operatori di cambio in C

Operatori di cambio in C

In generale, non dovresti preoccuparti delle operazioni da qualche parte a livello di bit come sviluppatore. Puoi concettualizzare in termini di byte, int e doppi e dati di livello ancora più alto. Tuttavia, ci sono casi in cui si desidera ingrandire un singolo pezzo. I bit in una variabile interi sono spostati da un numero definito di posizioni utilizzando due operatori a turni. L'operatore ">>" cambia bit a destra, mentre l'operatore cambia bit a sinistra. In generale, impiegare gli operatori a turni sinistra e destra invece di calcolare e quindi moltiplicazione per una potenza di due comporterà un codice sostanzialmente più veloce.

Di conseguenza, possiamo dividere l'operatore di spostamento bitwise in due categorie principali:

  • Operatore di spostamento di sinistra
  • Operatore di spostamento destro

Esempio di operatore di spostamento a sinistra

In C, è un operatore di spostamento bitwise che funziona con i bit. È un operatore binario, il che significa che funziona con due operandi. Viene utilizzato per spostare i bit di un valore a sinistra aggiungendo zeri agli spazi vuoti a sinistra dopo lo spostamento. Per il numero di luoghi specificati dal secondo operando, i primi bit dell'opera e vengono spostati a sinistra.

Sintassi

"Nameofvariable"<Possono esserci due valori nella sintassi sopra mostrata; Il primo è una variabile intera su cui potremmo usare l'operatore a shopping di sinistra. Il nome di questa variabile può essere qualsiasi cosa l'utente desidera che sia. Il secondo valore è un numero intero che definisce quanti posti i bit dovrebbero essere spostati a sinistra.

L'esito dell'operazione di spostamento a sinistra sarà sconosciuto se il primo operando è negativo. Allo stesso modo, se in qualche modo il valore del secondo operando è negativo o superiore o uguale al numero di bit durante il primo operando, il risultato dell'operazione a spostamento a sinistra non è definito. Considerando che se il valore del secondo operando è maggiore della dimensione dell'intero, il risultato dell'operazione di spostamento sinistra sarebbe anche indefinito.

Stiamo implementando tutti questi esempi su Ubuntu 20.04 Sistema operativo Linux. Apri la finestra del terminale di Ubuntu 20.04 Sistema operativo Linux ed eseguire le seguenti istruzioni aggiunte nella shell per creare un file intitolato "LeftShift.C". L'estensione del file è .C, che raffigura il file è per il linguaggio di programmazione C.

$ Nano Syllshift.C

Dopo la creazione, il file verrà aperto nell'editor GNU. Eseguire il codice di programmazione elencato di seguito.

In questo codice, abbiamo assegnato i valori a "A" e "B" come "2" e "9" e abbiamo applicato l'operatore di spostamento a sinistra su entrambi. Abbiamo stampato il risultato utilizzando la funzione printf (). L'intero codice è scritto nella funzione principale. Dopo aver salvato questo file, scrivi i comandi elencati di seguito per l'esecuzione e la compilazione del codice con attacco sopra con l'aiuto del compilatore GCC.

$ GCC Sishift.C
$ ./UN.fuori

All'esecuzione, viene mostrato l'output, in quanto è possibile controllare l'immagine allegata.

Esempio di operatore di spostamento destro

Due numeri vengono utilizzati come operandi nell'operazione di spostamento destro (>>). Il secondo operando determina se o il primo operando debba spostare correttamente i bit, nonché il numero di luoghi che dovrebbero essere spostati. In altre parole, viene utilizzato 0 a meno che il numero non sia positivo e 1 non viene utilizzato quando il numero è negativo.

Sintassi

"NameOfvariable" >> "TotalPositionNumbers"

Ci possono essere due valori nella riga sopra; La prima è una variabile intera per utilizzare l'operatore di cambio giusto. Il nome di questa variabile può essere qualsiasi cosa l'utente desidera che sia. Il secondo valore è un numero intero che definisce quanti posti i bit dovrebbero essere spostati a destra.

Stiamo implementando tutti questi esempi su Ubuntu 20.04 Sistema operativo Linux. Apri la finestra del terminale di Ubuntu 20.04 Sistema operativo Linux ed eseguire le seguenti istruzioni aggiunte nella shell per creare un file intitolato "RSHIFT.C". L'estensione del file è .C, che raffigura il file è per il linguaggio di programmazione C.

Dopo la creazione, il file verrà aperto nell'editor GNU. Eseguire il codice di programmazione elencato di seguito.

In questo codice, abbiamo assegnato i valori a A e B come "5" e "9" e abbiamo applicato l'operatore di spostamento a sinistra su entrambi. Abbiamo stampato il risultato utilizzando la funzione printf (). L'intero codice è scritto nella funzione principale. Dopo aver salvato questo file, scrivi i comandi elencati di seguito per l'esecuzione e la compilazione del codice con attacco sopra con l'aiuto del compilatore GCC.

$ GCC RSHIFT.C
$ ./UN.fuori

All'esecuzione, viene mostrato l'output, in quanto è possibile controllare l'immagine allegata.

Conclusione

Gli operatori bitwise sono un insieme di operatori speciali forniti dal linguaggio di programmazione "C". Sono impiegati nella programmazione a livello di bit. In C /, abbiamo imparato a utilizzare gli operatori a turni sinistra e destra, che sono importanti per le operazioni di mutevole bit su numeri non firmati. Quando gli operatori di cambio vengono combinati, i dati dell'espressione intero possono essere estratti. Credo che utilizzerai facilmente gli operatori del turno con l'assistenza di questa guida approfondita.