Prev Next
Bit wise operators in C:
These operators are used to perform bit operations. Decimal values are converted into binary values which are the sequence of bits and bit wise operators work on these bits.
- Bit wise operators in C language are & (bitwise AND), | (bitwise OR), ~ (bitwise NOT), ^ (XOR), << (left shift) and >> (right shift).
Truth table for bit wise operation & Bit wise operators:
Below are the bit-wise operators and their name in C language.
- & – Bitwise AND
- | – Bitwise OR
- ~ – Bitwise NOT
- ^ – XOR
- << – Left Shift
- >> – Right Shift
Consider x=40 and y=80. Binary form of these values are given below.
x = 00101000
y= 01010000
All bit wise operations for x and y are given below.
- x&y = 00000000 (binary) = 0 (decimal)
- x|y = 01111000 (binary) = 120 (decimal)
- ~x = 11111111111111111111111111 11111111111111111111111111111111010111 = -41 (decimal)
- x^y = 01111000 (binary) = 120 (decimal)
- x << 1 = 01010000 (binary) = 80 (decimal)
- x >> 1 = 00010100 (binary) = 20 (decimal)
Note:
- Bit wise NOT : Value of 40 in binary is 00000000000000000000000000000000 00000000000000000010100000000000. So, all 0’s are converted into 1’s in bit wise NOT operation.
- Bit wise left shift and right shift : In left shift operation “x << 1 “, 1 means that the bits will be left shifted by one place. If we use it as “x << 2 “, then, it means that the bits will be left shifted by 2 places.
Example program for bit wise operators in C:
In this example program, bit wise operations are performed as shown above and output is displayed in decimal format.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <stdio.h> int main() { int m = 40,n = 80,AND_opr,OR_opr,XOR_opr,NOT_opr ; AND_opr = (m&n); OR_opr = (m|n); NOT_opr = (~m); XOR_opr = (m^n); printf("AND_opr value = %d\n",AND_opr ); printf("OR_opr value = %d\n",OR_opr ); printf("NOT_opr value = %d\n",NOT_opr ); printf("XOR_opr value = %d\n",XOR_opr ); printf("left_shift value = %d\n", m << 1); printf("right_shift value = %d\n", m >> 1); } |
Output:
AND_opr value = 0
OR_opr value = 120 NOT_opr value = -41 XOR_opr value = 120 left_shift value = 80 right_shift value = 20 |
Continue on types of C operators:
Click on each operator name below for detailed description and example programs.
Types of Operators
|
Description
|
Arithmetic_operators | These are used to perform mathematical calculations like addition, subtraction, multiplication, division and modulus |
Assignment_operators | These are used to assign the values for the variables in C programs. |
These operators are used to compare the value of two variables.
|
|
These operators are used to perform logical operations on the given two variables.
|
|
These operators are used to perform bit operations on given two variables.
|
|
Conditional operators return one value if condition is true and returns another value is condition is false.
|
|
These operators are used to either increase or decrease the value of the variable by one.
|
|
&, *, sizeof( ) and ternary operators.
|