logo

Operatori pomaka u C

U ovom odjeljku raspravljat će se o operatorima bitovnog pomaka u programskom jeziku c. Operator pomaka po bitovima koristi se za pomicanje binarnih bitova bilo u lijevom ili desnom smjeru prema zahtjevu programa.

Operatori pomaka u C

Operatori pomaka klasificiraju se u dvije vrste na temelju položaja pomaka bitova.

  1. Lijevi operator pomaka
  2. Operator desnog pomaka

Lijevi operator pomaka

Operator lijevog pomaka vrsta je operatora bitnog pomaka koji izvodi operacije na binarnim bitovima. To je binarni operator koji zahtijeva dva operanda za pomicanje ili pomicanje položaja bitova na lijevu stranu i dodavanje nula u prazan prostor stvoren na desnoj strani nakon pomicanja bitova.

Sintaksa

sučelje vs apstraktna klasa
 var_name << no_of_position 

U gornjoj sintaksi, var_name predstavlja naziv cjelobrojne varijable na kojoj je pomak ulijevo (<<) 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>

Na primjer, vrijednost cjelobrojne varijable num je 22, a njen binarni oblik je 10110. Sada koristimo operator lijevog pomaka za pomak binarnih bitova 2, num = num << 2 jednako je num = num * (2 ^2). A nova vrijednost num je 22* (2 ^ 2) = 88, što je jednako binarnom obliku 1011000.

Primjer 1: Program za demonstraciju korištenja operatora lijevog pomaka u C-u

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

Izlaz

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

Primjer 2: Program za korištenje lijevog operatora Shift u unsigned int podacima C

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

Izlaz

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

Primjer 3: Program za unos pozitivnog broja od korisnika za izvođenje operatora pomaka ulijevo

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

Izlaz

 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 

U gornjem primjeru, binarni bit korisnički definiranog pozitivnog broja 40 je 101000. Nakon toga, uzimamo 4 kao broj za pomicanje binarnih bitova na lijevu stranu. I onda, operator pomaka ulijevo pomiče 4 binarna bita na lijevoj strani, a zatim se stvara prostor na desnoj strani, koji se popunjava ili dodaje s 4 nule na desnu stranu koja vraća binarnu vrijednost 1010000000, što je ekvivalentno decimalni broj 640.

Operator desnog pomaka

Operator desnog pomaka vrsta je operatora pomaka po bitu koji se koristi za pomicanje bitova na desnoj strani, a predstavljen je simbolom dvostruke (>>) strelice. Kao i operator pomaka ulijevo, operator pomaka udesno također zahtijeva dva operanda za pomicanje bitova na desnoj strani i zatim umetanje nula u prazan prostor stvoren na lijevoj strani nakon pomaka bitova.

Sintaksa

objekt jsonobject java
 var_name &gt;&gt; no_of_position 

U gornjoj sintaksi, var_name predstavlja cjelobrojnu varijablu na kojoj treba izvršiti operaciju desnog pomaka (>>) za pomak binarnih bitova na desnoj strani. A varijabla no_of_position predstavlja broj bitova koje treba postaviti ili pomaknuti na desnu stranu. Drugim riječima, desni operator pomaka pomiče binarne bitove prvog operanda na desnu stranu definiranjem ukupnog broja bitova drugog operanda.

Primjer 1: Program za demonstraciju korištenja operatora Right Shift u C-u

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

Izlaz

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

Primjer 2: Program za korištenje operatora Right Shift u unsigned int podacima 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; } 

Izlaz

preuzmite youtube vlc media player
 After shifting the binary bits to the right side. The new value of the unsigned variable num = 63 

Primjer 3: Program za unos pozitivnog broja od korisnika za izvođenje operatora desnog pomaka

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

Izlaz

 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