logo

Побітовий оператор у C

Побітові оператори — це оператори, які використовуються для виконання операцій над даними на бітовому рівні. Коли ми виконуємо побітові операції, це також відомо як програмування на бітовому рівні. Він складається з двох цифр, 0 або 1. Він в основному використовується в чисельних обчисленнях, щоб зробити обчислення швидшими.

У мові програмування C є різні типи побітових операторів. Нижче наведено список порозрядних операторів:

Оператор Значення оператора
& Порозрядний оператор І
| Побітовий оператор АБО
^ Побітовий виключаючий оператор АБО
~ Оператор доповнення одиниці (унарний оператор)
<< Оператор лівої зміни
>> Оператор правої зміни

Давайте подивимося на таблицю істинності побітових операторів.

X І 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.

str до внутр

Наприклад,

 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.

посилальна змінна в java

Наприклад,

 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.

Наприклад,

сайра бану актор
 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>

Де,

Операнд — це цілочисельний вираз, до якого ми застосовуємо операцію зсуву вправо.

найгарніша посмішка в світі

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