logo

Operatori di turno in C

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.

Operatori di turno in C

Gli operatori di spostamento sono classificati in due tipi in base alla posizione di spostamento dei bit.

  1. Operatore di turno a sinistra
  2. 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 (&apos; Enter a positive number: &apos;); scanf (&apos; %d&apos;, &amp;num); // use left shift operator to shift the bits num = (num &lt;&lt; 2); // It shifts two bits at the left side printf (&apos; 
 After shifting the binary bits to the left side. &apos;); printf (&apos; 
 The new value of the variable num = %d&apos;, 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 &lt;&lt; 2); printf (&apos; 
 After shifting the binary bits to the left side. &apos;); printf (&apos; 
 The new value of the unsigned variable num = %d&apos;, 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 (&apos; Enter a positive number: &apos;); scanf (&apos; %d&apos;, &amp;num); printf (&apos; No. of binary bits shifted to the left side: &apos;); scanf (&apos; %d&apos;, &amp;bit); // use left shift operator to shift the bits num = (num &lt;&lt; bit); printf (&apos; 
 After shifting the bits to the left side. &apos;); printf (&apos; 
 The new value of the num = %d&apos;, 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 &gt;&gt; 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 (&apos; Enter a positive number: &apos;); scanf (&apos; %d&apos;, &amp;num); // use right shift operator to shift the bits num = (num &gt;&gt; 2); // It shifts two bits at the right side printf (&apos; 
 After shifting the binary bits to the right side. &apos;); printf (&apos; 
 The new value of the variable num = %d&apos;, 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 &gt;&gt; 2); printf (&apos; 
 After shifting the binary bits to the right side. &apos;); printf (&apos; 
 The new value of the unsigned variable num = %d&apos;, 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 (&apos; Enter a positive number: &apos;); scanf (&apos; %d&apos;, &amp;num); printf (&apos; No. of binary bits shifted to the right side: &apos;); scanf (&apos; %d&apos;, &amp;bit); // use right shift operator to shift the bits num = (num &gt;&gt; bit); printf (&apos; 
 After using the right shift operator to shift the bits at the right side. &apos;); printf (&apos; 
 New value of the num = %d&apos;, 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