Táto časť sa bude zaoberať operátormi bitového posunu v programovacom jazyku c. Operátor bitového posunu sa používa na posun binárnych bitov buď v ľavom alebo pravom smere podľa požiadaviek programu.
Operátory posunu sú rozdelené do dvoch typov na základe polohy posunu bitov.
- Operátor ľavej zmeny
- Operátor pravej zmeny
Operátor ľavej zmeny
Operátor posunu vľavo je typ operátora bitového posunu, ktorý vykonáva operácie s binárnymi bitmi. Je to binárny operátor, ktorý vyžaduje dva operandy na posunutie alebo posunutie pozície bitov na ľavú stranu a pridanie nuly do prázdneho priestoru vytvoreného na pravej strane po posunutí bitov.
Syntax
var_name << no_of_position
Vo vyššie uvedenej syntaxi predstavuje var_name celočíselný názov premennej, na ktorej je posunutý doľava (<<) 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>
Napríklad hodnota celočíselnej premennej num je 22 a jej binárny tvar je 10110. Teraz použijeme operátor posunu doľava na posunutie binárnych bitov 2, pričom num = num << 2 sa rovná num = num * (2 ^2). A nová hodnota num je 22* (2 ^ 2) = 88, čo sa rovná binárnemu tvaru 1011000.
Príklad 1: Program na demonštráciu použitia operátora Ľavý Shift v C
#include int main () { // declare local variable int num; printf (' Enter a positive number: '); scanf (' %d', &num); // use left shift operator to shift the bits num = (num << 2); // It shifts two bits at the left side printf (' After shifting the binary bits to the left side. '); printf (' The new value of the variable num = %d', num); return 0; }
Výkon
referenčné dátové typy v jazyku Java
Enter a positive number: 25 After shifting the binary bits to the left side. The new value of the variable num = 100
Príklad 2: Program na použitie operátora Left Shift v int dátach bez znamienka C
#include int main () { // declare local variable unsigned int num = 0xff; // use left shift operator to shift the bits num = (num << 2); printf (' After shifting the binary bits to the left side. '); printf (' The new value of the unsigned variable num = %d', num); return 0; }
Výkon
After shifting the binary bits to the left side. The new value of the unsigned variable num = 1020
Príklad 3: Program na zadanie kladného čísla od užívateľa na vykonanie operátora Ľavý posun
#include int main () { // declare local variable int num, bit; printf (' Enter a positive number: '); scanf (' %d', &num); printf (' No. of binary bits shifted to the left side: '); scanf (' %d', &bit); // use left shift operator to shift the bits num = (num << bit); printf (' After shifting the bits to the left side. '); printf (' The new value of the num = %d', num); return 0; }
Výkon
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
Vo vyššie uvedenom príklade je binárny bit používateľom definovaného kladného čísla 40 101 000. Potom vezmeme 4 ako číslo na posunutie binárnych bitov na ľavú stranu. A potom operátor posunu doľava posunie 4 binárne bity na ľavú stranu a potom sa vytvorí priestor na pravej strane, ktorý sa vyplní alebo pridá 4 nulami na pravú stranu, čím sa vráti binárna hodnota 1010000000, čo je ekvivalent desatinné číslo 640.
Operátor pravej zmeny
Operátor posunu doprava je typ operátora bitového posunu, ktorý sa používa na presun bitov na pravej strane a je reprezentovaný ako symbol dvojitej (>>) šípky. Rovnako ako operátor posunu vľavo, aj operátor posunu vpravo vyžaduje dva operandy na posunutie bitov na pravej strane a potom vloženie núl do prázdneho priestoru vytvoreného na ľavej strane po posunutí bitov.
Syntax
var_name >> no_of_position
Vo vyššie uvedenej syntaxi predstavuje var_name celočíselnú premennú, na ktorej sa má vykonať operácia posunu doprava (>>), aby sa posunuli binárne bity na pravú stranu. A premenná no_of_position predstavuje počet bitov, ktoré majú byť umiestnené alebo posunuté na pravú stranu. Inými slovami, operátor posunu doprava posúva binárne bity prvého operandu na pravú stranu definovaním celkového počtu bitov do druhého operandu.
Príklad 1: Program na demonštráciu použitia operátora Right Shift v C
#include int main () { // declare local variable int num; printf (' Enter a positive number: '); scanf (' %d', &num); // use right shift operator to shift the bits num = (num >> 2); // It shifts two bits at the right side printf (' After shifting the binary bits to the right side. '); printf (' The new value of the variable num = %d', num); return 0; }
Výkon
rozdiel medzi tigrom a levom
Enter a positive number: 25 After shifting the binary bits to the right side. The new value of the variable num = 6
Príklad 2: Program na použitie operátora Right Shift v int dátach bez znamienka C
#include int main () { // declare local variable unsigned int num = 0xff; // use right shift operator to shift the bits num = (num >> 2); printf (' After shifting the binary bits to the right side. '); printf (' The new value of the unsigned variable num = %d', num); return 0; }
Výkon
After shifting the binary bits to the right side. The new value of the unsigned variable num = 63
Príklad 3: Program na zadanie kladného čísla od používateľa na vykonanie operátora posunu doprava
#include int main () { // declare local variable int num, bit; printf (' Enter a positive number: '); scanf (' %d', &num); printf (' No. of binary bits shifted to the right side: '); scanf (' %d', &bit); // use right shift operator to shift the bits num = (num >> bit); printf (' After using the right shift operator to shift the bits at the right side. '); printf (' New value of the num = %d', num); return 0; }
Výkon
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
)>