4 - Bitwise Operators in C
4 - Bitwise Operators in C
The following table lists the Bitwise operators supported by C. Assume variable 'A' holds 60 and variable
'B' holds 13, then −
& Binary AND Operator copies a bit to the result if it exists in (A & B) = 12, i.e., 0000 1100
both operands.
| Binary OR Operator copies a bit if it exists in either operand. (A | B) = 61, i.e., 0011 1101
^ Binary XOR Operator copies the bit if it is set in one (A ^ B) = 49, i.e., 0011 0001
operand but not both.
~ Binary One's Complement Operator is unary and has the (~A ) = ~(60), i.e,. 1100 0011
effect of 'flipping' bits.
Example
Try the following example to understand all the bitwise operators available in C −
Live Demo
#include <stdio.h>
main() {
c = a | b; /* 61 = 0011 1101 */
printf("Line 2 - Value of c is %d\n", c );
c = a ^ b; /* 49 = 0011 0001 */
printf("Line 3 - Value of c is %d\n", c );
c = ~a; /*-61 = 1100 0011 */
printf("Line 4 - Value of c is %d\n", c );
When you compile and execute the above program, it produces the following result −
Line 1 - Value of c is 12
Line 2 - Value of c is 61
Line 3 - Value of c is 49
Line 4 - Value of c is -61
Line 5 - Value of c is 240
Line 6 - Value of c is 15
Print Page