The following table shows all the bitwise operators supported by the C language. Assume variable x holds 21, y holds 10 and variable z holds 0 then.
Operator Name | Syntax | Description | Example |
---|---|---|---|
Bitwise AND | x & y | Binary AND Operator copies a bit to the result if it exists in both operands. | z = x & y; z = 0 |
Bitwise OR | x | y | Binary OR Operator copies a bit if it exists in either operand. | z = x | y; z = 31 |
Bitwise XOR | x ^ y | Binary XOR Operator copies the bit if it is set in one operand but not both. | z = x ^ y; z = 31 |
Bitwise NOT | ~x | Binary Ones Complement Operator is unary and has the effect of 'flipping' bits. | z = ~x; z = -22 |
Bitwise left shift | x << y | Binary Left Shift Operator. The left operands value is moved left by the number of bits specified by the right operand. | z = x << 2; z = 84 |
Bitwise right shift | x >> y | Binary Right Shift Operator. The left operands value is moved right by the number of bits specified by the right operand. | z = x >> 2; z = 5 |
#include <stdio.h>
int main()
{
int x = 21;
int y = 10;
int z = 0;
printf("Bitwise operators demo\n");
printf("Value of x is %d\n", x );
printf("Value of y is %d\n", y );
printf("Value of z is %d\n", z );
z = x & y;
printf("Bitwise AND (z = x & y): %d\n", z );
z = x | y;
printf("Bitwise OR (z = x | y): %d\n", z );
z = x ^ y;
printf("Bitwise XOR (z = x ^ y): %d\n", z );
z = ~x ;
printf("Bitwise NOT (z = ~x): %d\n", z );
z = x << 2;
printf("Bitwise left shift (z = x << 2): %d\n", z );
z = x >> 2;
printf("Bitwise right shift (z = x >> 2): %d\n", z );
return 0;
}
The output of the above program would be:
Bitwise operators demo
Value of x is 21
Value of y is 10
Value of z is 0
Bitwise AND (z = x & y): 0
Bitwise OR (z = x | y): 31
Bitwise XOR (z = x ^ y): 31
Bitwise NOT (z = ~x): -22
Bitwise left shift (z = x << 2): 84
Bitwise right shift (z = x >> 2): 5
Related topics:
Overview of Operators in C | Arithmetic Operators in C | Relational Operators in C | Logical Operators in C | Compound Assignment Operators in C | Conditional Operators in C | Miscellaneous Operators in C | Operator Precedence and Associativity in C
List of topics: C Programming
No comments:
Post a Comment