logo

Operatory zmiany w C

W tej sekcji omówione zostaną operatory przesunięcia bitowego w języku programowania c. Operator przesunięcia bitowego służy do przesuwania bitów binarnych w lewo lub w prawo, zgodnie z wymaganiami programu.

Operatory zmiany w C

Operatory przesunięcia dzielą się na dwa typy w zależności od pozycji przesunięcia bitów.

  1. Operator lewej zmiany
  2. Prawy operator zmiany

Operator lewej zmiany

Operator przesunięcia w lewo jest rodzajem operatora przesunięcia bitowego, który wykonuje operacje na bitach binarnych. Jest to operator binarny, który wymaga dwóch operandów do przesunięcia lub przesunięcia pozycji bitów w lewą stronę i dodania zer do pustej przestrzeni powstałej po prawej stronie po przesunięciu bitów.

Składnia

 var_name << no_of_position 

W powyższej składni nazwa_zmiennej reprezentuje nazwę zmiennej całkowitej, w której lewe przesunięcie (<<) 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>

Na przykład wartość zmiennej całkowitej num wynosi 22, a jej postać binarna to 10110. Teraz używamy operatora lewego przesunięcia, aby przesunąć bity binarne o 2, num = num << 2 równe num = num * (2 ^2). Nowa wartość liczby wynosi 22* (2 ^ 2) = 88, co jest równe postaci binarnej 1011000.

Przykład 1: Program demonstrujący użycie operatora Left Shift w C

Java do obiektu json
 #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; } 

Wyjście

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

Przykład 2: Program używający operatora lewego przesunięcia w danych typu unsigned int języka 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; } 

Wyjście

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

Przykład 3: Program wprowadzający liczbę dodatnią od użytkownika w celu wykonania operatora przesunięcia w lewo

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

Wyjście

 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 

W powyższym przykładzie bit binarny zdefiniowanej przez użytkownika liczby dodatniej 40 wynosi 101000. Następnie przyjmujemy 4 jako liczbę, aby przesunąć bity binarne w lewą stronę. Następnie operator przesunięcia w lewo przesuwa 4 bity binarne po lewej stronie, a następnie po prawej stronie tworzona jest spacja, która jest wypełniana lub dodawana przez 4 zera po prawej stronie, co zwraca wartość binarną 1010000000, co jest równoważne liczba dziesiętna 640.

Operator zmiany prawej

Operator przesunięcia w prawo to rodzaj operatora przesunięcia bitowego używanego do przesuwania bitów po prawej stronie i jest reprezentowany jako symbol podwójnej strzałki (>>). Podobnie jak operator przesunięcia w lewo, operator przesunięcia w prawo również wymaga dwóch operandów do przesunięcia bitów po prawej stronie, a następnie wstawienia zer w pustym miejscu utworzonym po lewej stronie po przesunięciu bitów.

Składnia

 var_name &gt;&gt; no_of_position 

W powyższej składni nazwa_zmiennej reprezentuje zmienną całkowitą, na której ma zostać wykonana operacja przesunięcia w prawo (>>), aby przesunąć bity binarne w prawą stronę. Zmienna no_of_position reprezentuje liczbę bitów, które należy umieścić lub przesunąć w prawą stronę. Innymi słowy, operator przesunięcia w prawo przesuwa bity binarne pierwszego operandu na prawą stronę, określając całkowitą liczbę bitów drugiego operandu.

Przykład 1: Program demonstrujący użycie operatora Right Shift w 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; } 

Wyjście

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

Przykład 2: Program używający operatora Right Shift w danych typu unsigned int języka 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; } 

Wyjście

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

Przykład 3: Program wprowadzający liczbę dodatnią od użytkownika w celu wykonania operatora przesunięcia w prawo

najwyższe polecenie Uniksa
 #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; } 

Wyjście

 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