У овом одељку ће се расправљати о операторима померања битова у програмском језику ц. Оператор померања битова се користи за померање бинарних битова било у левом или десном смеру у складу са захтевима програма.
Оператори померања су класификовани у два типа на основу положаја померања битова.
- Оператор леве смене
- Оператер десне смене
Оператор леве смене
Оператор левог померања је тип оператора помака по биту, који обавља операције над бинарним битовима. То је бинарни оператор који захтева два операнда да би померили или померили позицију битова на леву страну и додали нуле у празан простор створен на десној страни након померања битова.
Синтакса
онцлицк јс
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>
На пример, вредност целобројне променљиве нум је 22, а њен бинарни облик је 10110. Сада користимо оператор померања улево да померимо бинарне битове 2, нум = нум << 2 једнако нум = нум * (2 ^2). А нова вредност броја је 22* (2 ^ 2) = 88, што је једнако бинарном облику 1011000.
Пример 1: Програм за демонстрацију употребе оператора Лефт Схифт у Ц
#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: Програм за коришћење оператора Лефт Схифт у непотписаним инт подацима Ц
разлика између $ и $$
#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
У горњој синтакси, вар_наме представља целобројну променљиву на којој треба да се изврши операција померања удесно (>>) за померање бинарних битова на десној страни. А променљива но_оф_поситион представља број битова који се постављају или померају на десну страну. Другим речима, десни оператор померања помера бинарне битове првог операнда на десној страни тако што дефинише укупан број битова у други операнд.
Пример 1: Програм за демонстрацију коришћења оператора Ригхт Схифт у Ц
#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: Програм за коришћење оператора Ригхт Схифт у непотписаним инт подацима Ц
#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
)>