logo

Schichtoperatoren in C

In diesem Abschnitt werden die bitweisen Verschiebungsoperatoren in der Programmiersprache C erläutert. Der bitweise Verschiebungsoperator wird verwendet, um die Binärbits entsprechend den Anforderungen des Programms entweder nach links oder nach rechts zu verschieben.

Schichtoperatoren in C

Verschiebungsoperatoren werden basierend auf der Verschiebungsposition der Bits in zwei Typen eingeteilt.

  1. Linker Shift-Operator
  2. Rechter Shift-Operator

Linker Shift-Operator

Der Linksverschiebungsoperator ist eine Art bitweiser Verschiebungsoperator, der Operationen an den Binärbits ausführt. Es handelt sich um einen binären Operator, der zwei Operanden benötigt, um die Position der Bits auf die linke Seite zu verschieben und Nullen zum leeren Raum hinzuzufügen, der auf der rechten Seite nach dem Verschieben der Bits entsteht.

Syntax

 var_name << no_of_position 

In der obigen Syntax stellt var_name den ganzzahligen Variablennamen dar, auf dem die Linksverschiebung (<<) 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>

Beispielsweise ist der Wert der ganzzahligen Variablen num 22 und ihre Binärform ist 10110. Jetzt verwenden wir den Linksverschiebungsoperator, um die Binärbits um 2 zu verschieben, wobei num = num << 2 gleich num = num * (2 ist ^2). Und der neue Wert von num ist 22* (2 ^ 2) = 88, was der Binärform 1011000 entspricht.

Beispiel 1: Programm zur Demonstration der Verwendung des Left Shift-Operators in C

Java-Iterator für Karte
 #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; } 

Ausgabe

 Enter a positive number: 25 After shifting the binary bits to the left side. The new value of the variable num = 100 

Beispiel 2: Programm zur Verwendung des Left Shift-Operators in den vorzeichenlosen int-Daten von 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; } 

Ausgabe

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

Beispiel 3: Programm zur Eingabe der positiven Zahl vom Benutzer, um den Linksverschiebungsoperator auszuführen

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

Ausgabe

 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 

Im obigen Beispiel ist das Binärbit der benutzerdefinierten positiven Zahl 40 101000. Danach nehmen wir 4 als Zahl, um die Binärbits auf die linke Seite zu verschieben. Und dann verschiebt der Linksverschiebungsoperator 4 Binärbits auf der linken Seite, und dann wird auf der rechten Seite Platz geschaffen, der mit 4 Nullen auf der rechten Seite gefüllt oder hinzugefügt wird, was den Binärwert 1010000000 zurückgibt, was äquivalent ist die Dezimalzahl 640.

Rechter Shift-Operator

Der rechte Verschiebungsoperator ist eine Art bitweiser Verschiebungsoperator, der zum Verschieben der Bits auf der rechten Seite verwendet wird und als Doppelpfeilsymbol (>>) dargestellt wird. Wie der Linksverschiebungsoperator erfordert auch der Rechtsverschiebungsoperator zwei Operanden, um die Bits auf der rechten Seite zu verschieben und dann die Nullen in den leeren Raum einzufügen, der auf der linken Seite nach der Verschiebung der Bits entsteht.

Kern-Java-Interviewfragen

Syntax

 var_name &gt;&gt; no_of_position 

In der obigen Syntax stellt var_name die Ganzzahlvariable dar, für die die Rechtsverschiebungsoperation (>>) ausgeführt werden soll, um die Binärbits auf die rechte Seite zu verschieben. Und die Variable no_of_position stellt die Anzahl der Bits dar, die auf der rechten Seite platziert oder verschoben werden sollen. Mit anderen Worten: Der Rechtsverschiebungsoperator verschiebt die Binärbits des ersten Operanden auf der rechten Seite, indem er die Gesamtzahl der Bits für den zweiten Operanden definiert.

Beispiel 1: Programm zur Demonstration der Verwendung des Right Shift-Operators in 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; } 

Ausgabe

 Enter a positive number: 25 After shifting the binary bits to the right side. The new value of the variable num = 6 

Beispiel 2: Programm zur Verwendung des Right Shift-Operators in den vorzeichenlosen int-Daten von C

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

Ausgabe

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

Beispiel 3: Programm zur Eingabe der positiven Zahl vom Benutzer, um den Rechtsverschiebungsoperator auszuführen

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

Ausgabe

 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