logo

Műszakos operátorok C-ben

Ez a rész a Bitwise shift operátorokat tárgyalja a c programozási nyelvben. A bitenkénti eltolás operátor a bináris bitek balra vagy jobbra tolására szolgál, a program követelményei szerint.

Műszakos operátorok C-ben

A Shift operátorokat a bitek eltolási helyzete alapján két típusba soroljuk.

  1. Bal műszakkezelő
  2. Jobb műszakkezelő

Bal műszakkezelő

A balra eltolás operátor egyfajta Bitwise shift operátor, amely a bináris biteken hajt végre műveleteket. Ez egy bináris operátor, amelyhez két operandusra van szükség ahhoz, hogy a bitek helyzetét balra tolja vagy mozgassa, és a bitek eltolása után nullákat adjon a jobb oldalon létrehozott üres helyre.

c++ pár

Szintaxis

 var_name << no_of_position 

A fenti szintaxisban a var_name azt az egész változó nevét jelenti, amelyen a balra eltolás (<<) 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>

Például a num egész változó értéke 22, bináris alakja pedig 10110. Most a bal shift operátort használjuk a 2 bináris bitek eltolására, a num = num << 2 egyenlő a num = num * (2 ^2). És a szám új értéke 22* (2 ^ 2) = 88, ami egyenlő az 1011000 bináris alakkal.

1. példa: Program, amely bemutatja a Bal Shift operátor használatát C nyelven

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

Kimenet

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

2. példa: Program a Left Shift operátor használatára a C előjel nélküli int adataiban

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

Kimenet

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

3. példa: Program a felhasználó pozitív számának bevitelére a balra váltás művelet végrehajtásához

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

Kimenet

tömb java metódusokban
 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 

A fenti példában a felhasználó által definiált pozitív 40-es szám bináris bitje 101000. Ezután 4-et veszünk számként a bal oldali bináris bitek eltolásához. Ezután a bal oldali eltolás operátor 4 bináris bitet tol el a bal oldalon, majd a jobb oldalon tér keletkezik, amelyet kitölt vagy hozzáad 4 nullával a jobb oldalhoz, ami a 1010000000 bináris értéket adja vissza, ami egyenértékű a tizedesjegy 640.

Jobb váltókezelő

A jobb oldali eltolás operátor egyfajta bitenkénti eltolási operátor, amelyet a bitek jobb oldali mozgatására használnak, és dupla (>>) nyíl szimbólumként ábrázolják. A bal oldali eltolás operátorhoz hasonlóan a jobb oldali eltolás operátorhoz is két operandusra van szükség a bitek jobb oldali eltolásához, majd a bitek eltolása után a nullákat a bal oldalon létrehozott üres helyre szúrja be.

Szintaxis

 var_name &gt;&gt; no_of_position 

A fenti szintaxisban a var_name azt az egész változót jelenti, amelyen a jobb oldali eltolás (>>) műveletet végre kell hajtani a bináris bitek jobb oldali eltolásához. A no_of_position változó pedig a jobb oldalra helyezendő vagy eltolni kívánt bitek számát jelenti. Más szavakkal, a jobbra eltolási operátor eltolja az első operandus bináris bitjeit a jobb oldalon azáltal, hogy meghatározza a második operandushoz tartozó bitek teljes számát.

1. példa: Program, amely bemutatja a Right Shift operátor használatát C nyelven

karakterlánc elemzése int-re
 #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; } 

Kimenet

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

2. példa: Program a Right Shift operátor használatára a C előjel nélküli int adataiban

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

Kimenet

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

3. példa: Program a felhasználó pozitív számának bevitelére a jobbra váltás művelet végrehajtásához

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

Kimenet

 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