logo

Побитов оператор в C

Побитовите оператори са операторите, използвани за извършване на операциите върху данните на битово ниво. Когато извършваме побитови операции, това е известно също като програмиране на битово ниво. Състои се от две цифри, 0 или 1. Използва се главно в числени изчисления, за да направи изчисленията по-бързи.

Имаме различни видове побитови оператори в езика за програмиране C. Следва списъкът на побитовите оператори:

Оператор Значение на оператора
и Побитов оператор И
| Побитов оператор ИЛИ
^ Побитово изключителен оператор ИЛИ
~ Оператор на едно допълнение (унарен оператор)
<< Оператор на лява смяна
>> Оператор на дясна смяна

Нека да разгледаме таблицата на истината на побитовите оператори.

х И X&Y X|Y X^Y
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 1

Побитово И оператор

Побитовият оператор И се обозначава с единичния знак амперсанд (&). Два целочислени операнда са записани от двете страни на оператора (&). Ако съответните битове и на двата операнда са 1, тогава изходът от побитовата операция И е 1; в противен случай изходът ще бъде 0.

конвертиране от низ в цяло число java

Например,

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

В горния код създадохме две променливи, т.е. „a“ и „b“. Стойностите на 'a' и 'b' са съответно 6 и 14. Двоичната стойност на „a“ и „b“ е съответно 0110 и 1110. Когато приложим оператора И между тези две променливи,

a И b = 0110 && 1110 = 0110

Изход

Побитов оператор в C

Побитов оператор ИЛИ

Побитовият оператор ИЛИ е представен с един вертикален знак (|). Два целочислени операнда са написани от двете страни на символа (|). Ако битовата стойност на някой от операндите е 1, тогава изходът ще бъде 1, в противен случай 0.

c булево

Например,

 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 

Изход

Побитов оператор в C

Побитово изключителен оператор ИЛИ

Побитово изключителен оператор ИЛИ се обозначава със символ (^). Два операнда са записани от двете страни на изключителния оператор ИЛИ. Ако съответният бит на някой от операндите е 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; } 

Изход

Побитов оператор в C

Оператор за побитово допълнение

Операторът на побитово допълнение е известен също като оператор на едно допълнение. Той е представен със символа тилда (~). Той взема само един операнд или променлива и изпълнява операция за допълване на операнд. Когато приложим операцията за допълване върху всеки бит, тогава 0 става 1 и 1 става 0.

Например,

подобрена for loop java
 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; } 

Изход

Побитов оператор в C

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

В програмирането на C съществуват два типа оператори за побитово преместване. Операторите за побитово преместване ще изместят битовете или отляво, или отдясно. Следователно можем да кажем, че операторът за побитово преместване е разделен на две категории:

  • Оператор с ляво преместване
  • Оператор за смяна надясно

Оператор с ляво преместване

Това е оператор, който измества броя на битовете наляво.

Синтаксисът на оператора за ляво преместване е даден по-долу:

 Operand &lt;&lt; n 

Където,

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

n е броят битове, които трябва да бъдат изместени.

В случай на оператор за ляво изместване, 'n' бита ще бъдат изместени отляво. „N“ бита от лявата страна ще изскочат, а „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>

Където,

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

пример за java клас

N е броят битове, които трябва да бъдат изместени.

В случай на оператор за дясно изместване, 'n' бита ще бъдат изместени от дясната страна. „N“ бита от дясната страна ще изскочат, а „n“ бита от лявата страна се запълват с 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; } 

Изход

Побитов оператор в C