logo

Оператори за смяна в C

Този раздел ще обсъди операторите за побитово преместване в езика за програмиране c. Операторът за побитово изместване се използва за изместване на двоичните битове в лява или дясна посока според изискването на програмата.

Оператори за смяна в C

Операторите за преместване се класифицират в два типа въз основа на позицията на преместване на битовете.

  1. Ляв оператор за преместване
  2. Десен оператор за преместване

Ляв оператор за преместване

Операторът за ляво преместване е вид оператор за побитово преместване, който извършва операции върху двоичните битове. Това е двоичен оператор, който изисква два операнда за изместване или преместване на позицията на битовете вляво и добавяне на нули към празното пространство, създадено от дясната страна след изместване на битовете.

Синтаксис

 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 (&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; } 

Изход

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

Изход

 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 (&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; } 

Изход

 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 &gt;&gt; no_of_position 

В горния синтаксис var_name представлява целочислената променлива, върху която трябва да се изпълни операцията за преместване надясно (>>), за да се изместят двоичните битове от дясната страна. И променливата no_of_position представлява броя на битовете, които трябва да бъдат поставени или изместени в дясната страна. С други думи, операторът за надясно изместване измества двоичните битове на първия операнд от дясната страна, като определя общия брой битове на втория операнд.

Пример 1: Програма за демонстриране на използването на оператора Right Shift в 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; } 

Изход

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

Изход

 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 (&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; } 

Изход

 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