logo

Битни оператор у Ц

Битни оператори су оператори који се користе за обављање операција над подацима на нивоу бита. Када изводимо операције по битовима, то је такође познато као програмирање на нивоу бита. Састоји се од две цифре, било 0 или 1. Углавном се користи у нумеричким прорачунима како би прорачун био бржи.

Имамо различите типове битних оператора у програмском језику Ц. Следи листа битних оператора:

Оператер Значење оператора
& Оператор АНД у битовима
| Оператор ОР у битовима
^ Оператор екслузивног ОР у битовима
~ Оператор комплемента једног (унарни оператор)
<< Оператер левих смена
>> Оператер десне смене

Погледајмо табелу истинитости битних оператора.

Икс И Кс&И Кс|И Кс^И
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 1

Оператор АНД у битовима

Оператор АНД у битовима означен је једним знаком амперсанда (&). Два целобројна операнда су написана са обе стране (&) оператора. Ако су одговарајући битови оба операнда 1, онда је излаз битне операције И 1; у супротном, излаз би био 0.

На пример,

 We have two variables a and b. a =6; b=4; The binary representation of the above two variables are given below: a = 0110 b = 0100 When we apply the bitwise AND operation in the above two variables, i.e., a&amp;b, the output would be: Result = 0100 

Као што можемо приметити из горњег резултата да се битови обе променљиве пореде један по један. Ако је бит обе променљиве 1, онда би излаз био 1, у супротном 0.

Хајде да кроз програм разумемо битни АНД оператор.

 #include int main() { int a=6, b=14; // variable declarations printf(&apos;The output of the Bitwise AND operator a&amp;b is %d&apos;,a&amp;b); return 0; } 

У горњем коду смо направили две променљиве, тј. 'а' и 'б'. Вредности 'а' и 'б' су 6 и 14 респективно. Бинарне вредности 'а' и 'б' су 0110 и 1110, респективно. Када применимо И оператор између ове две променљиве,

а И б = 0110 && 1110 = 0110

Излаз

Битни оператор у Ц

Оператор ОР у битовима

Битни ОР оператор је представљен једним вертикалним знаком (|). Два целобројна операнда су написана са обе стране симбола (|). Ако је вредност бита било ког операнда 1, онда би излаз био 1, у супротном 0.

На пример,

фирма против компаније
 We consider two variables, a = 23; b = 10; The binary representation of the above two variables would be: a = 0001 0111 b = 0000 1010 When we apply the bitwise OR operator in the above two variables, i.e., a|b , then the output would be: Result = 0001 1111 

Као што можемо приметити из горњег резултата да се битови оба операнда упоређују један по један; ако је вредност било ког бита 1, онда би излаз био 1, иначе 0.

Хајде да разумемо битни ОР оператор кроз програм.

 #include int main() int a=23,b=10; // variable declarations printf(&apos;The output of the Bitwise OR operator a 

Излаз

Битни оператор у Ц

Оператор екслузивног ОР у битовима

Оператор екслузивног ИЛИ по биту је означен симболом (^). Два операнда су написана са обе стране ексклузивног ОР оператора. Ако је одговарајући бит било ког од операнда 1, онда би излаз био 1, у супротном 0.

На пример,

 We consider two variables a and b, a = 12; b = 10; The binary representation of the above two variables would be: a = 0000 1100 b = 0000 1010 When we apply the bitwise exclusive OR operator in the above two variables (a^b), then the result would be: Result = 0000 1110 

Као што можемо приметити из горњег резултата да се битови оба операнда упоређују један по један; ако је одговарајућа вредност бита било ког операнда 1, онда би излаз био 1 иначе 0.

Хајде да разумемо побитни искључиви оператор ОР кроз програм.

 #include int main() { int a=12,b=10; // variable declarations printf(&apos;The output of the Bitwise exclusive OR operator a^b is %d&apos;,a^b); return 0; } 

Излаз

Битни оператор у Ц

Оператор битова комплемента

Оператор допуне у битовима је такође познат као оператор комплемента. Представљен је симболом тилда (~). Потребно је само један операнд или променљива и врши операцију комплемента над операндом. Када применимо операцију комплемента на било који бит, тада 0 постаје 1, а 1 постаје 0.

На пример,

 If we have a variable named &apos;a&apos;, a = 8; The binary representation of the above variable is given below: a = 1000 When we apply the bitwise complement operator to the operand, then the output would be: Result = 0111 

Као што можемо приметити из горњег резултата да ако је бит 1, онда се мења у 0, иначе 1.

Хајде да разумемо оператор комплемента кроз програм.

 #include int main() { int a=8; // variable declarations printf(&apos;The output of the Bitwise complement operator ~a is %d&apos;,~a); return 0; } 

Излаз

Битни оператор у Ц

Оператори померања битова

У Ц програмирању постоје два типа оператора померања битова. Оператори померања битова ће померити битове на леву или десну страну. Према томе, можемо рећи да је оператор померања битова подељен у две категорије:

  • Оператор померања улево
  • Оператер са померањем удесно

Оператор померања улево

најбољи хентаи

То је оператор који помера број битова на леву страну.

Синтакса оператора левог померања је дата у наставку:

 Operand &lt;&lt; n 

Где,

Операнд је целобројни израз на који примењујемо операцију померања улево.

н је број битова који се померају.

У случају оператора померања улево, битови 'н' ће бити померени на леву страну. Битови 'н' на левој страни ће бити искочити, а 'н' битови на десној страни су попуњени са 0.

На пример,

 Suppose we have a statement: int a = 5; The binary representation of &apos;a&apos; is given below: a = 0101 If we want to left-shift the above representation by 2, then the statement would be: a &lt;&lt; 2; 0101&lt;<2 = 00010100 < pre> <p> <strong>Let&apos;s understand through a program.</strong> </p> <pre> #include int main() { int a=5; // variable initialization printf(&apos;The value of a&lt;<2 is : %d ', a<<2); return 0; } < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/c-tutorial/51/bitwise-operator-c-5.webp" alt="Bitwise Operator in C"> <p> <strong>Right-shift operator</strong> </p> <p>It is an operator that shifts the number of bits to the right side.</p> <p> <strong>Syntax of the right-shift operator is given below:</strong> </p> <pre> Operand &gt;&gt; n; </pre> <p> <strong>Where,</strong> </p> <p>Operand is an integer expression on which we apply the right-shift operation.</p> <p>N is the number of bits to be shifted.</p> <p>In the case of the right-shift operator, &apos;n&apos; bits will be shifted on the right-side. The &apos;n&apos; bits on the right-side will be popped out, and &apos;n&apos; bits on the left-side are filled with 0.</p> <p> <strong>For example, </strong> </p> <pre> Suppose we have a statement, int a = 7; The binary representation of the above variable would be: a = 0111 If we want to right-shift the above representation by 2, then the statement would be: a&gt;&gt;2; 0000 0111 &gt;&gt; 2 = 0000 0001 </pre> <p> <strong>Let&apos;s understand through a program.</strong> </p> <pre> #include int main() { int a=7; // variable initialization printf(&apos;The value of a&gt;&gt;2 is : %d &apos;, a&gt;&gt;2); return 0; } </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/c-tutorial/51/bitwise-operator-c-6.webp" alt="Bitwise Operator in C"> <hr></2></pre></2>

Где,

Операнд је целобројни израз на који примењујемо операцију померања удесно.

Н је број битова који се померају.

У случају оператора померања удесно, битови 'н' ће бити померени на десну страну. Битови 'н' на десној страни ће искочити, а битови 'н' на левој страни ће бити попуњени са 0.

На пример,

 Suppose we have a statement, int a = 7; The binary representation of the above variable would be: a = 0111 If we want to right-shift the above representation by 2, then the statement would be: a&gt;&gt;2; 0000 0111 &gt;&gt; 2 = 0000 0001 

Хајде да разумемо кроз програм.

 #include int main() { int a=7; // variable initialization printf(&apos;The value of a&gt;&gt;2 is : %d &apos;, a&gt;&gt;2); return 0; } 

Излаз

Битни оператор у Ц