Questa sezione discuterà gli operatori di spostamento bit a bit nel linguaggio di programmazione c. L'operatore di spostamento bit a bit viene utilizzato per spostare i bit binari nella direzione sinistra o destra in base ai requisiti del programma.
Gli operatori di spostamento sono classificati in due tipi in base alla posizione di spostamento dei bit.
- Operatore di turno a sinistra
- Operatore di spostamento a destra
Operatore di turno a sinistra
L'operatore di spostamento sinistro è un tipo di operatore di spostamento bit a bit, che esegue operazioni sui bit binari. È un operatore binario che richiede due operandi per spostare o spostare la posizione dei bit sul lato sinistro e aggiungere zeri allo spazio vuoto creato sul lato destro dopo lo spostamento dei bit.
Sintassi
var_name << no_of_position
Nella sintassi precedente, nome_var rappresenta il nome della variabile intera su cui viene effettuato lo spostamento a sinistra (<<) operation is to be performed shift the binary bits at left side. and no_of_position variable represents number of placed or shifted in other words, operator shifts first operand on side by defined second operand.< p>
Ad esempio, il valore della variabile intera num è 22 e la sua forma binaria è 10110. Ora usiamo l'operatore di spostamento sinistro per spostare i bit binari di 2, num = num << 2 uguale a num = num * (2 ^2). E il nuovo valore di num è 22* (2 ^ 2) = 88, che equivale alla forma binaria 1011000.
Esempio 1: programma per dimostrare l'uso dell'operatore Left Shift in C
#include int main () { // declare local variable int num; printf (' Enter a positive number: '); scanf (' %d', &num); // use left shift operator to shift the bits num = (num << 2); // It shifts two bits at the left side printf (' After shifting the binary bits to the left side. '); printf (' The new value of the variable num = %d', num); return 0; }
Produzione
Enter a positive number: 25 After shifting the binary bits to the left side. The new value of the variable num = 100
Esempio 2: programma per utilizzare l'operatore Left Shift nei dati int senza segno del C
#include int main () { // declare local variable unsigned int num = 0xff; // use left shift operator to shift the bits num = (num << 2); printf (' After shifting the binary bits to the left side. '); printf (' The new value of the unsigned variable num = %d', num); return 0; }
Produzione
After shifting the binary bits to the left side. The new value of the unsigned variable num = 1020
Esempio 3: programma per inserire il numero positivo dell'utente per eseguire l'operatore di spostamento a sinistra
#include int main () { // declare local variable int num, bit; printf (' Enter a positive number: '); scanf (' %d', &num); printf (' No. of binary bits shifted to the left side: '); scanf (' %d', &bit); // use left shift operator to shift the bits num = (num << bit); printf (' After shifting the bits to the left side. '); printf (' The new value of the num = %d', num); return 0; }
Produzione
Enter a positive number: 40 No. of binary bits shifted to the left side: 4 After shifting the bits to the left side. The new value of the num = 640
Nell'esempio sopra, il bit binario del numero positivo 40 definito dall'utente è 101000. Successivamente, prendiamo 4 come numero per spostare i bit binari sul lato sinistro. Quindi, l'operatore di spostamento a sinistra sposta 4 bit binari sul lato sinistro, quindi viene creato spazio sul lato destro, che viene riempito o aggiunto di 4 zeri sul lato destro che restituisce il valore binario 1010000000, che equivale a il numero decimale 640.
Operatore di spostamento a destra
L'operatore di spostamento a destra è un tipo di operatore di spostamento bit a bit utilizzato per spostare i bit sul lato destro ed è rappresentato come il simbolo della doppia freccia (>>). Come l'operatore di spostamento a sinistra, anche l'operatore di spostamento a destra richiede due operandi per spostare i bit sul lato destro e quindi inserire gli zeri nello spazio vuoto creato sul lato sinistro dopo lo spostamento dei bit.
Sintassi
var_name >> no_of_position
Nella sintassi precedente, nome_var rappresenta la variabile intera su cui deve essere eseguita l'operazione di spostamento a destra (>>) per spostare i bit binari sul lato destro. E la variabile no_of_position rappresenta il numero di bit da posizionare o spostare sul lato destro. In altre parole, l'operatore di spostamento a destra sposta i bit binari del primo operando sul lato destro definendo il numero totale di bit del secondo operando.
Esempio 1: programma per dimostrare l'uso dell'operatore Right Shift in C
#include int main () { // declare local variable int num; printf (' Enter a positive number: '); scanf (' %d', &num); // use right shift operator to shift the bits num = (num >> 2); // It shifts two bits at the right side printf (' After shifting the binary bits to the right side. '); printf (' The new value of the variable num = %d', num); return 0; }
Produzione
Enter a positive number: 25 After shifting the binary bits to the right side. The new value of the variable num = 6
Esempio 2: programma per utilizzare l'operatore Right Shift nei dati int senza segno del C
#include int main () { // declare local variable unsigned int num = 0xff; // use right shift operator to shift the bits num = (num >> 2); printf (' After shifting the binary bits to the right side. '); printf (' The new value of the unsigned variable num = %d', num); return 0; }
Produzione
After shifting the binary bits to the right side. The new value of the unsigned variable num = 63
Esempio 3: programma per inserire il numero positivo da parte dell'utente per eseguire l'operatore Right Shift
#include int main () { // declare local variable int num, bit; printf (' Enter a positive number: '); scanf (' %d', &num); printf (' No. of binary bits shifted to the right side: '); scanf (' %d', &bit); // use right shift operator to shift the bits num = (num >> bit); printf (' After using the right shift operator to shift the bits at the right side. '); printf (' New value of the num = %d', num); return 0; }
Produzione
Enter a positive number: 40 No. of binary bits shifted to the right side: 4 After using the right shift operator to shift the bits to the right. The new value of the num = 2
)>