logo

Maiņu operatori C

Šajā sadaļā tiks apspriesti bitu nobīdes operatori c programmēšanas valodā. Bitu maiņas operators tiek izmantots, lai pārvietotu bināros bitus pa kreisi vai pa labi atbilstoši programmas prasībām.

Maiņu operatori C

Maiņu operatori tiek iedalīti divos veidos, pamatojoties uz bitu pārslēgšanas pozīciju.

  1. Kreisās maiņas operators
  2. Labās maiņas operators

Kreisās maiņas operators

Kreisās maiņas operators ir Bitwise shift operatora veids, kas veic darbības ar binārajiem bitiem. Tas ir binārs operators, kuram ir nepieciešami divi operandi, lai pārvietotu vai pārvietotu bitu pozīciju uz kreiso pusi un pievienotu nulles tukšajai vietai, kas izveidota labajā pusē pēc bitu pārvietošanas.

Sintakse

gimp noņemt ūdenszīmi
 var_name << no_of_position 

Iepriekš minētajā sintaksē var_name apzīmē vesela skaitļa mainīgā nosaukumu, uz kura tiek veikta kreisā maiņa (<<) 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>

Piemēram, vesela skaitļa mainīgā num vērtība ir 22, un tā binārā forma ir 10110. Tagad mēs izmantojam kreiso maiņas operatoru, lai pārvietotu bināros bitus 2, num = num << 2 ir vienāds ar num = num * (2 ^2). Un jaunā skaitļa vērtība ir 22* (2 ^ 2) = 88, kas ir vienāda ar bināro formu 1011000.

1. piemērs: programma, lai demonstrētu kreisās maiņas operatora lietošanu C valodā

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

Izvade

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

2. piemērs: programma, lai izmantotu operatoru Left Shift C neparakstītajos int datos

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

Izvade

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

3. piemērs. Programma lietotāja pozitīvā skaitļa ievadīšanai, lai veiktu maiņas pa kreisi operatoru

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

Izvade

 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 

Iepriekš minētajā piemērā lietotāja definētā pozitīvā skaitļa 40 binārais bits ir 101000. Pēc tam mēs ņemam 4 kā skaitli, lai pārvietotu bināros bitus kreisajā pusē. Un tad kreisās puses nobīdes operators nobīda 4 bināros bitus kreisajā pusē, un tad labajā pusē tiek izveidota atstarpe, kas tiek aizpildīta vai pievienota ar 4 nullēm labajā pusē, kas atgriež bināro vērtību 1010000000, kas ir līdzvērtīga decimālskaitlis 640.

Labās maiņas operators

Labās maiņas operators ir bitu maiņas operatora veids, ko izmanto, lai pārvietotu bitus labajā pusē, un tas tiek attēlots kā dubultās (>>) bultiņas simbols. Tāpat kā kreisās puses maiņas operatoram, arī labās maiņas operatoram ir nepieciešami divi operandi, lai pārvietotu bitus labajā pusē un pēc tam pēc bitu pārvietošanas ievietotu nulles tukšajā vietā, kas izveidota kreisajā pusē.

Sintakse

java kodēšana if else paziņojums
 var_name &gt;&gt; no_of_position 

Iepriekš minētajā sintaksē var_nosaukums apzīmē veselu mainīgo lielumu, kuram jāveic labās maiņas (>>) darbība, lai pārvietotu bināros bitus labajā pusē. Un no_of_position mainīgais apzīmē bitu skaitu, kas jānovieto vai jāpārvieto uz labo pusi. Citiem vārdiem sakot, labās puses maiņas operators pārvieto pirmā operanda bināros bitus labajā pusē, definējot kopējo bitu skaitu otrajam operandam.

1. piemērs: programma, lai demonstrētu labās maiņas operatora izmantošanu 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; } 

Izvade

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

2. piemērs: programma, lai izmantotu operatoru Right Shift C neparakstītajos int datos

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

Izvade

saīsināt un dzēst atšķirību
 After shifting the binary bits to the right side. The new value of the unsigned variable num = 63 

3. piemērs. Programma, kas ievada pozitīvo skaitli no lietotāja, lai veiktu labās maiņas operatoru

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

Izvade

 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