logo

Skiftoperatörer i C

Det här avsnittet kommer att diskutera Bitwise shift-operatorerna i programmeringsspråket c. Bitvis skiftoperator används för att flytta de binära bitarna antingen i vänster riktning eller höger riktning enligt programmets krav.

Skiftoperatörer i C

Skiftoperatörer klassificeras i två typer baserat på växlingspositionen för bitarna.

  1. Vänster växelförare
  2. Höger växeloperatör

Vänster växelförare

Vänsterskiftoperatorn är en typ av Bitwise shift-operator, som utför operationer på de binära bitarna. Det är en binär operator som kräver två operander för att flytta eller flytta bitarnas position till vänster och lägga till nollor till det tomma utrymmet som skapas på höger sida efter att bitarna har flyttats.

Syntax

 var_name << no_of_position 

I syntaxen ovan representerar var_name namnet på heltalsvariabeln där vänster skiftar (<<) 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>

Till exempel är värdet på heltalsvariabeln num 22, och dess binära form är 10110. Nu använder vi vänsterskiftoperatorn för att skifta de binära bitarna 2, num = num << 2 lika med num = num * (2) ^2). Och det nya värdet på num är 22* (2 ^ 2) = 88, vilket är lika med den binära formen 1011000.

uml diagram java

Exempel 1: Program för att demonstrera användningen av vänsterväxlingsoperatorn 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 

Exempel 2: Program för att använda Left Shift-operatorn i osignerad int-data för 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 

Exempel 3: Program för att mata in det positiva talet från användaren för att utföra Vänsterskiftsoperatorn

 #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 exemplet ovan är den binära biten för det användardefinierade positiva talet 40 101000. Efter det tar vi 4 som numret för att flytta de binära bitarna på vänster sida. Och sedan skiftar vänsterskiftningsoperatorn 4 binära bitar på vänster sida, och sedan skapas utrymme på höger sida, som fylls eller adderas med 4 nollor till höger sida som returnerar det binära värdet 1010000000, vilket motsvarar decimaltalet 640.

Högerväxlingsförare

Höger skiftoperator är en typ av bitvis skiftoperator som används för att flytta bitarna på höger sida, och den representeras som den dubbla (>>) pilsymbolen. Precis som Vänsterväxlingsoperatören kräver Högerväxlingsoperatören också två operander för att skifta bitarna på höger sida och sedan infoga nollorna vid det tomma utrymmet som skapas på vänster sida efter att ha skiftat bitarna.

Syntax

 var_name &gt;&gt; no_of_position 

I ovanstående syntax representerar var_name den heltalsvariabel på vilken den högra skiftoperationen (>>) ska utföras för att skifta de binära bitarna på höger sida. Och variabeln no_of_position representerar antalet bitar som ska placeras eller flyttas till höger sida. Med andra ord skiftar den högra skiftoperatorn de binära bitarna i den första operanden på höger sida genom att definiera det totala antalet bitar till den andra operanden.

Exempel 1: Program för att demonstrera användningen av Right Shift-operatorn 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 

Exempel 2: Program för att använda Right Shift-operatorn i osignerad int-data för 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 

Exempel 3: Program för att mata in det positiva numret från användaren för att utföra högerskiftsoperatorn

 #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