logo

Operatorii de schimb în C

Această secțiune va discuta despre operatorii de deplasare pe biți în limbajul de programare c. Operatorul de deplasare pe biți este folosit pentru a deplasa biții binari fie în direcția stângă, fie în direcția dreaptă, în funcție de cerințele programului.

Operatorii de schimb în C

Operatorii de schimbare sunt clasificați în două tipuri în funcție de poziția de deplasare a biților.

  1. Operator de schimbare la stânga
  2. Operator schimbare dreapta

Operator de schimbare la stânga

Operatorul de deplasare la stânga este un tip de operator de deplasare pe biți, care efectuează operații pe biții binari. Este un operator binar care necesită doi operanzi pentru a muta sau a muta poziția biților în partea stângă și pentru a adăuga zerouri în spațiul gol creat în partea dreaptă după deplasarea biților.

Sintaxă

 var_name << no_of_position 

În sintaxa de mai sus, var_name reprezintă numele întregului variabilă pe care se deplasează la stânga (<<) 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>

De exemplu, valoarea variabilei întregi num este 22, iar forma sa binară este 10110. Acum folosim operatorul de deplasare la stânga pentru a deplasa biții binari 2, num = num << 2 egal cu num = num * (2 ^2). Și noua valoare a lui num este 22* (2 ^ 2) = 88, care este egală cu forma binară 1011000.

Exemplul 1: Program pentru a demonstra utilizarea operatorului Shift la stânga în C

comutați java
 #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; } 

Ieșire

 Enter a positive number: 25 After shifting the binary bits to the left side. The new value of the variable num = 100 

Exemplul 2: Programul de utilizare a operatorului Left Shift în datele int nesemnate ale 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; } 

Ieșire

 After shifting the binary bits to the left side. The new value of the unsigned variable num = 1020 

Exemplul 3: Program pentru a introduce numărul pozitiv de la utilizator pentru a efectua operatorul de schimbare la stânga

 #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; } 

Ieșire

 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 

În exemplul de mai sus, bitul binar al numărului pozitiv 40 definit de utilizator este 101000. După aceea, luăm 4 ca număr pentru a muta biții binari din partea stângă. Și apoi, operatorul de deplasare la stânga schimbă 4 biți binari în partea stângă, iar apoi este creat spațiu în partea dreaptă, care este completat sau adăugat cu 4 zerouri în partea dreaptă, care returnează valoarea binară 1010000000, care este echivalent cu numărul zecimal 640.

Operator schimbare dreapta

Operatorul de deplasare la dreapta este un tip de operator de deplasare pe biți utilizat pentru a muta biții din partea dreaptă și este reprezentat ca simbolul săgeată dublă (>>). La fel ca operatorul de deplasare la stânga, operatorul de deplasare la dreapta necesită, de asemenea, doi operanzi pentru a deplasa biții în partea dreaptă și apoi pentru a introduce zerourile în spațiul gol creat în partea stângă după deplasarea biților.

Sintaxă

 var_name &gt;&gt; no_of_position 

În sintaxa de mai sus, var_name reprezintă variabila întreagă pe care trebuie efectuată operația de deplasare la dreapta (>>) pentru a deplasa biții binari din partea dreaptă. Iar variabila no_of_position reprezintă numărul de biți care trebuie plasați sau mutați în partea dreaptă. Cu alte cuvinte, operatorul de deplasare la dreapta deplasează biții binari ai primului operand din partea dreaptă prin definirea numărului total de biți la al doilea operand.

Exemplul 1: Program pentru a demonstra utilizarea operatorului Shift la dreapta în 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; } 

Ieșire

 Enter a positive number: 25 After shifting the binary bits to the right side. The new value of the variable num = 6 

Exemplul 2: Program pentru a utiliza operatorul Right Shift în datele int nesemnate ale 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; } 

Ieșire

 After shifting the binary bits to the right side. The new value of the unsigned variable num = 63 

Exemplul 3: Program pentru a introduce numărul pozitiv de la utilizator pentru a efectua operatorul de schimbare la dreapta

dimensiunea textului din latex
 #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; } 

Ieșire

 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