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 przesunięcia dzielą się na dwa typy w zależności od pozycji przesunięcia bitów.
- Operator lewej zmiany
- 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 (' 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; }
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 << 2); printf (' After shifting the binary bits to the left side. '); printf (' The new value of the unsigned variable num = %d', 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 (' 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; }
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 >> 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 (' 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; }
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 >> 2); printf (' After shifting the binary bits to the right side. '); printf (' The new value of the unsigned variable num = %d', 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 (' 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; }
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
)>