Този раздел ще обсъди операторите за побитово преместване в езика за програмиране c. Операторът за побитово изместване се използва за изместване на двоичните битове в лява или дясна посока според изискването на програмата.
Операторите за преместване се класифицират в два типа въз основа на позицията на преместване на битовете.
- Ляв оператор за преместване
- Десен оператор за преместване
Ляв оператор за преместване
Операторът за ляво преместване е вид оператор за побитово преместване, който извършва операции върху двоичните битове. Това е двоичен оператор, който изисква два операнда за изместване или преместване на позицията на битовете вляво и добавяне на нули към празното пространство, създадено от дясната страна след изместване на битовете.
Синтаксис
var_name << no_of_position
В горния синтаксис име_на_променлива представлява името на целочислената променлива, върху която лявото изместване (<<) 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>
Например, стойността на целочислената променлива num е 22, а нейната двоична форма е 10110. Сега използваме левия оператор за преместване, за да изместим двоичните битове 2, num = num << 2 е равно на num = num * (2 ^2). И новата стойност на num е 22* (2 ^ 2) = 88, което е равно на двоичната форма 1011000.
Пример 1: Програма за демонстриране на използването на оператора Left Shift в C
#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; }
Изход
Enter a positive number: 25 After shifting the binary bits to the left side. The new value of the variable num = 100
Пример 2: Програма за използване на оператора Left Shift в неподписаните int данни на 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; }
Изход
After shifting the binary bits to the left side. The new value of the unsigned variable num = 1020
Пример 3: Програма за въвеждане на положително число от потребителя за извършване на оператора за ляво преместване
#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; }
Изход
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
В горния пример двоичният бит на дефинираното от потребителя положително число 40 е 101000. След това вземаме 4 като число, за да изместим двоичните битове от лявата страна. И след това операторът за ляво изместване измества 4 двоични бита от лявата страна и след това се създава пространство от дясната страна, което се запълва или добавя с 4 нули към дясната страна, което връща двоичната стойност 1010000000, което е еквивалентно на десетичното число 640.
Оператор на дясна смяна
Операторът за надясно преместване е вид оператор за побитово преместване, използван за преместване на битовете от дясната страна и е представен като двоен (>>) символ със стрелка. Подобно на оператора за смяна наляво, операторът за смяна надясно също изисква два операнда за изместване на битовете от дясната страна и след това вмъкване на нулите в празното пространство, създадено от лявата страна след изместване на битовете.
Синтаксис
var_name >> no_of_position
В горния синтаксис var_name представлява целочислената променлива, върху която трябва да се изпълни операцията за преместване надясно (>>), за да се изместят двоичните битове от дясната страна. И променливата no_of_position представлява броя на битовете, които трябва да бъдат поставени или изместени в дясната страна. С други думи, операторът за надясно изместване измества двоичните битове на първия операнд от дясната страна, като определя общия брой битове на втория операнд.
Пример 1: Програма за демонстриране на използването на оператора Right Shift в 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; }
Изход
Enter a positive number: 25 After shifting the binary bits to the right side. The new value of the variable num = 6
Пример 2: Програма за използване на оператора Right Shift в неподписаните int данни на 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; }
Изход
After shifting the binary bits to the right side. The new value of the unsigned variable num = 63
Пример 3: Програма за въвеждане на положителното число от потребителя за извършване на оператора за смяна надясно
#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; }
Изход
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
)>