Denne delen vil diskutere Bitwise shift-operatorene i programmeringsspråket c. Bitvis skiftoperator brukes til å forskyve de binære bitene enten i venstre retning eller høyre retning i henhold til programmets krav.
Skiftoperatører er klassifisert i to typer basert på skifteposisjonen til bitene.
- Venstre skiftoperatør
- Høyre girskifter
Venstre skiftoperatør
Venstre skiftoperator er en type Bitwise skiftoperator, som utfører operasjoner på de binære bitene. Det er en binær operatør som krever to operander for å flytte eller flytte posisjonen til bitene til venstre side og legge til nuller til det tomme rommet som er opprettet på høyre side etter å ha flyttet bitene.
Syntaks
var_name << no_of_position
I syntaksen ovenfor representerer var_navn heltallsvariabelnavnet som venstre forskyvning (<<) 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>
For eksempel er verdien av heltallsvariabelen num 22, og dens binære form er 10110. Nå bruker vi venstre skiftoperator for å forskyve de binære bitene 2, num = num << 2 lik num = num * (2 ^2). Og den nye verdien av num er 22* (2 ^ 2) = 88, som er lik den binære formen 1011000.
Eksempel 1: Program for å demonstrere bruken av venstreskiftoperatoren i 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; }
Produksjon
Enter a positive number: 25 After shifting the binary bits to the left side. The new value of the variable num = 100
Eksempel 2: Program for å bruke Left Shift-operatoren i de usignerte int-dataene til 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; }
Produksjon
After shifting the binary bits to the left side. The new value of the unsigned variable num = 1020
Eksempel 3: Program for å legge inn det positive tallet fra brukeren for å utføre venstreskiftoperatoren
#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; }
Produksjon
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
I eksemplet ovenfor er den binære biten til det brukerdefinerte positive tallet 40 101000. Etter det tar vi 4 som tallet for å forskyve de binære bitene på venstre side. Og så skifter venstreforskyvningsoperatøren 4 binære biter på venstre side, og deretter opprettes plass på høyre side, som fylles eller legges til med 4 nuller til høyre side som returnerer den binære verdien 1010000000, som tilsvarer desimaltallet 640.
Høyre skiftoperatør
Høyre skiftoperator er en type bitvis skiftoperator som brukes til å flytte bitene på høyre side, og den er representert som det doble (>>) pilsymbolet. I likhet med venstreskiftoperatøren krever også høyreskiftoperatoren to operander for å forskyve bitene på høyre side og deretter sette inn nullene på det tomme rommet som er opprettet på venstre side etter å ha forskjøvet bitene.
Syntaks
var_name >> no_of_position
I syntaksen ovenfor representerer var_navn heltallsvariabelen som den høyre skiftoperasjonen (>>) skal utføres på for å skifte de binære bitene på høyre side. Og no_of_position-variabelen representerer antall biter som skal plasseres eller flyttes til høyre side. Med andre ord forskyver den høyre skiftoperatoren de binære bitene til den første operanden på høyre side ved å definere det totale antallet biter til den andre operanden.
Eksempel 1: Program for å demonstrere bruken av høyreskiftoperatoren i 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; }
Produksjon
Enter a positive number: 25 After shifting the binary bits to the right side. The new value of the variable num = 6
Eksempel 2: Program for å bruke Right Shift-operatoren i de usignerte int-dataene til 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; }
Produksjon
After shifting the binary bits to the right side. The new value of the unsigned variable num = 63
Eksempel 3: Program for å legge inn det positive tallet fra brukeren for å utføre høyreskiftoperatoren
#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; }
Produksjon
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
)>