Šiame skyriuje bus aptariami bitinio poslinkio operatoriai c programavimo kalba. Bitinio poslinkio operatorius naudojamas perkelti dvejetainius bitus į kairę arba į dešinę, atsižvelgiant į programos reikalavimus.
Poslinkio operatoriai skirstomi į du tipus pagal bitų perjungimo padėtį.
- Kairysis pamainos operatorius
- Dešinysis pamainos operatorius
Kairysis pamainos operatorius
Kairysis poslinkio operatorius yra bitinio poslinkio operatorius, kuris atlieka operacijas su dvejetainiais bitais. Tai dvejetainis operatorius, kuriam reikia dviejų operandų, kad būtų galima perkelti arba perkelti bitų padėtį į kairę pusę ir pridėti nulius prie tuščios vietos, sukurtos dešinėje, pakeitus bitus.
Sintaksė
var_name << no_of_position
Aukščiau pateiktoje sintaksėje var_name reiškia sveikojo skaičiaus kintamojo pavadinimą, ant kurio pastumiamas kairysis poslinkis (<<) 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>
Pavyzdžiui, sveikojo skaičiaus kintamojo num reikšmė yra 22, o jo dvejetainė forma yra 10110. Dabar mes naudojame kairiojo poslinkio operatorių, kad pakeistume dvejetainius bitus 2, skaičius = skaičius << 2 lygus num = num * (2 ^2). Ir naujoji skaičiaus reikšmė yra 22* (2 ^ 2) = 88, kuri yra lygi dvejetainei formai 1011000.
1 pavyzdys: programa, skirta parodyti, kaip naudojamas operatoriaus kairysis poslinkis 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; }
Išvestis
Enter a positive number: 25 After shifting the binary bits to the left side. The new value of the variable num = 100
2 pavyzdys: programa, skirta naudoti kairiojo poslinkio operatorių nepasirašytuose C int duomenyse
#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; }
Išvestis
After shifting the binary bits to the left side. The new value of the unsigned variable num = 1020
3 pavyzdys: Programa, skirta įvesti teigiamą vartotojo skaičių, kad būtų atliktas poslinkio į kairę operatorius
#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; }
Išvestis
įtraukti c programavimą
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
Aukščiau pateiktame pavyzdyje vartotojo apibrėžto teigiamo skaičiaus 40 dvejetainis bitas yra 101000. Po to imame skaičių 4, kad perkeltume dvejetainius bitus kairėje pusėje. Tada kairiojo poslinkio operatorius perkelia 4 dvejetainius bitus kairėje pusėje, o tada dešinėje sukuriama erdvė, kuri užpildoma arba pridedama 4 nuliais dešinėje pusėje, kuri grąžina dvejetainę reikšmę 1010000000, kuri yra lygiavertė dešimtainis skaičius 640.
Dešinės pamainos operatorius
Dešinysis poslinkio operatorius yra bitų poslinkio operatorius, naudojamas bitams perkelti dešinėje pusėje, ir jis vaizduojamas kaip dvigubos (>>) rodyklės simbolis. Kaip ir kairiojo poslinkio operatoriui, dešiniojo poslinkio operatoriui taip pat reikia dviejų operandų, kad būtų galima perkelti bitus dešinėje, o tada įterpti nulius į tuščią vietą, susidariusią kairėje, pakeitus bitus.
Sintaksė
var_name >> no_of_position
Aukščiau pateiktoje sintaksėje var_name reiškia sveikąjį kintamąjį, kuriam turi būti atlikta dešiniojo poslinkio (>>) operacija, norint perkelti dvejetainius bitus dešinėje pusėje. Kintamasis no_of_position rodo bitų, kuriuos reikia įdėti arba perkelti į dešinę pusę, skaičių. Kitaip tariant, dešiniojo poslinkio operatorius perkelia pirmojo operando dvejetainius bitus dešinėje pusėje, apibrėždamas bendrą antrojo operando bitų skaičių.
1 pavyzdys: programa, skirta parodyti, kaip naudojamas operatorius dešinėn poslinkis 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; }
Išvestis
Enter a positive number: 25 After shifting the binary bits to the right side. The new value of the variable num = 6
2 pavyzdys: programa, skirta naudoti dešinįjį poslinkio operatorių nepasirašytuose C int duomenyse
#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; }
Išvestis
After shifting the binary bits to the right side. The new value of the unsigned variable num = 63
3 pavyzdys: Programa, skirta įvesti teigiamą skaičių iš vartotojo, kad būtų atliktas dešiniojo poslinkio operatorius
#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; }
Išvestis
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
)>