logo

Skifteoperatører i C

Dette afsnit vil diskutere Bitwise shift-operatorerne i programmeringssproget c. Bitwise shift-operator bruges til at flytte de binære bits enten i venstre retning eller højre retning i henhold til programmets krav.

Skifteoperatører i C

Skifteoperatorer er klassificeret i to typer baseret på bitsens skiftende position.

  1. Venstre skiftoperatør
  2. Højre gearskifter

Venstre skiftoperatør

Den venstre shift-operator er en type Bitwise shift-operator, som udfører operationer på de binære bits. Det er en binær operator, der kræver to operander for at flytte eller flytte bitsets position til venstre side og tilføje nuller til det tomme rum, der er oprettet i højre side efter at have flyttet bitsene.

Syntaks

 var_name << no_of_position 

I ovenstående syntaks repræsenterer var_navn det heltalsvariabelnavn, hvorpå venstre skift (<<) 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 værdien af ​​den heltalsvariable num 22, og dens binære form er 10110. Nu bruger vi venstre shift-operator til at flytte de binære bits 2, num = num << 2 lig med num = num * (2 ^2). Og den nye værdi af num er 22* (2 ^ 2) = 88, hvilket er lig med den binære form 1011000.

Eksempel 1: Program til at demonstrere brugen af ​​venstreskiftoperatoren i 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; } 

Produktion

 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 til at bruge venstreskiftoperatoren i de usignerede int-data i C

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

Produktion

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

Eksempel 3: Program til at indtaste det positive tal fra brugeren for at udføre venstreskiftoperatoren

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

Produktion

 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 ovenstående eksempel er den binære bit af det brugerdefinerede positive tal 40 101000. Derefter tager vi 4 som tallet for at flytte de binære bits på venstre side. Og så skifter venstreforskydningsoperatøren 4 binære bit i venstre side, og så skabes der plads i højre side, som udfyldes eller tilføjes med 4 nuller til højre side, der returnerer den binære værdi 1010000000, hvilket svarer til decimaltallet 640.

Højreskifteoperatør

Den højre skiftoperator er en type bitvise skiftoperator, der bruges til at flytte bits i højre side, og den er repræsenteret som det dobbelte (>>) pilsymbol. Ligesom venstreskiftsoperatøren kræver højreskiftsoperatøren også to operander for at flytte bitsene i højre side og derefter indsætte nullerne i det tomme rum, der er oprettet i venstre side, efter at bitsene er flyttet.

Syntaks

 var_name &gt;&gt; no_of_position 

I ovenstående syntaks repræsenterer var_navn den heltalsvariabel, som højre shift-operation (>>) skal udføres på for at forskyde de binære bits i højre side. Og no_of_position-variablen repræsenterer antallet af bits, der skal placeres eller flyttes til højre side. Med andre ord flytter den højre skiftoperator de binære bits af den første operand til højre ved at definere det samlede antal bits til den anden operand.

Eksempel 1: Program til at demonstrere brugen af ​​højreskiftoperatoren i 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; } 

Produktion

 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 til at bruge Right Shift-operatoren i de usignerede int-data i 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; } 

Produktion

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

Eksempel 3: Program til at indtaste det positive tal fra brugeren for at udføre højreskiftoperatoren

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

Produktion

 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