logo

Operatorji premika v C

V tem razdelku bomo razpravljali o operatorjih bitnega premika v programskem jeziku c. Operator bitnega premika se uporablja za premik binarnih bitov v levo ali desno smer glede na zahteve programa.

Operatorji premika v C

Operatorji premika so razvrščeni v dve vrsti glede na položaj premikanja bitov.

  1. Levi operater premika
  2. Operator desnega premika

Levi operater premika

Levi operator premika je vrsta bitnega operaterja premika, ki izvaja operacije na binarnih bitih. To je binarni operator, ki zahteva, da dva operanda premakneta ali premakneta položaj bitov na levo stran in dodata ničle v prazen prostor, ustvarjen na desni strani po premiku bitov.

Sintaksa

branje iz datoteke csv v javi
 var_name << no_of_position 

V zgornji sintaksi var_name predstavlja celoštevilsko ime spremenljivke, na kateri levi premik (<<) 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 primer, vrednost celoštevilske spremenljivke num je 22, njena binarna oblika pa je 10110. Zdaj uporabimo levi operater premika za premik binarnih bitov 2, num = num << 2 je enako num = num * (2 ^2). In nova vrednost num je 22* (2 ^ 2) = 88, kar je enako binarni obliki 1011000.

Primer 1: Program za prikaz uporabe operatorja Left Shift v 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; } 

Izhod

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

Primer 2: Program za uporabo operatorja Left Shift v nepredznačenih int podatkih C

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

Izhod

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

Primer 3: Program za vnos pozitivnega števila od uporabnika za izvedbo operatorja premika v levo

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

Izhod

 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 

V zgornjem primeru je binarni bit uporabniško določenega pozitivnega števila 40 101000. Nato vzamemo 4 kot število za premik binarnih bitov na levo stran. In nato operator levo premakne 4 binarne bite na levi strani, nato pa se na desni strani ustvari prostor, ki je zapolnjen ali dodan s 4 ničlami ​​na desno stran, ki vrne binarno vrednost 1010000000, kar je enako decimalno število 640.

Operater desnega premika

Operator desnega premika je vrsta bitnega operaterja premika, ki se uporablja za premikanje bitov na desni strani in je predstavljen kot simbol dvojne (>>) puščice. Tako kot levi operator premika tudi desni operater zahteva dva operanda za premik bitov na desni strani in nato vstavljanje ničel v prazen prostor, ustvarjen na levi strani po premiku bitov.

Sintaksa

java dvojno v niz
 var_name &gt;&gt; no_of_position 

V zgornji sintaksi var_name predstavlja celoštevilsko spremenljivko, na kateri je treba izvesti operacijo desnega premika (>>), da premakne binarne bite na desno stran. In spremenljivka no_of_position predstavlja število bitov, ki jih je treba postaviti ali premakniti na desno stran. Z drugimi besedami, operater desnega premika premakne binarne bite prvega operanda na desno stran tako, da definira skupno število bitov v drugem operandu.

Primer 1: Program za predstavitev uporabe operatorja Right Shift v 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; } 

Izhod

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

Primer 2: Program za uporabo operatorja Right Shift v nepredznačenih int podatkih 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; } 

Izhod

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

Primer 3: Program za vnos pozitivnega števila od uporabnika za izvedbo operatorja premika v desno

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

Izhod

 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