# how to use bitwise operator

answered Oct 9 by (34,450 points)

What language do you use?

Check this for C.

answered 2 days ago by (140 points)
edited 1 day ago by Utpal Utkarsh

Hello Ananya, Bitwise operators are those operator which operates on Bits of one or multiple operands.

There are six different types of Bitwise Operators in C. These are:

The Bitwise AND (&) in C: The C compiler recognizes the Bitwise AND with & operator. It takes two operands and performs the AND operation for every bit of the two operand numbers. It is a binary operator. The output of this operator will result in 1 only if both bits are 1.

The Bitwise OR (|) in C: The C compiler recognizes the Bitwise OR with | operator. It takes two operands and performs the OR operation for every bit of the two operand numbers. It is also a binary operator. The output of this operator will result in 1 if any one of the two bits is 1.

The Bitwise XOR (^) in C: The C compiler recognizes the Bitwise XOR with ^ operator. It takes two operands and performs the XOR operation for every bit of the two operand numbers. It is also a binary operator. The output of this operator will result in 1 if both the bits have different values.

Binary One’s Complement or Bitwise NOT operator (~) in C: The C compiler recognizes the Bitwise NOT with ~ operator. It takes only one operand and performs the inversion of all digits of it. It is a unary operator. The output of this operator will invert all the existing bits of that operand.

Bitwise Left shift operator (<<) in C: The C compiler recognizes the left shift operation with this <<. It takes only two operands and shifts all the bits of the first operand to the left. The second operand decides how many numbers of places this operator will shift its bits. It is a binary operator.

Bitwise Right shift operator (>>) in C: The C compiler recognizes the left shift operation with this >>. It takes only two operands and shifts all the bits of the first operand to the right. The second operand decides how many numbers of places this operator will shift its bits. It is a binary operator.

## Program for Bitwise Operator in C

Let us now take a look at the program using all the bitwise operators.

#include <stdio.h>

int main()

{

unsigned char x = 20, y = 21; // x = 20 (00010100), y = 21 (00010101)

int g = 0;

g = x & y; /* 20 = 010100 */

printf("The result of Bitwise AND is %d \n", g );

g = x | y; /* 21 = 010101 */

printf("The result of Bitwise OR is %d \n", g );

g = x ^ y; /* 1 = 0001 */

printf("The result of Bitwise XOR is %d \n", g );

g = ~x;

printf("The result of Bitwise NOT is %d \n", g );

g = x << 1;

printf(" The result of Bitwise Left Shift is %d \n", g );

g = x >> 1;

printf("The result of Bitwise Right Shift is %d \n", g );

return 0;

}

OUTPUT:

The result of Bitwise AND is 20
The result of Bitwise OR is 21
The result of Bitwise XOR is 1
The result of Bitwise NOT is -21
The result of Bitwise Left Shift is 40
The result of Bitwise Right Shift is 10

commented 1 day ago by (34,450 points)
edited 1 day ago by Peter Minarik
" The result of Bitwise NOT is -2"

WRONG

The correct value is -21. Also, the output only shows the operators, but not the operands, so it's kind of meaningless. Even better if the binary value would be (also) displayed

E.g.:
"~20 (00010100) = -21 (11101011)"

or

"20 (00010100) & 21 (00010101) = 21 (00010101)"

etc...

Last, but not least, the code sample you copied here (through MS Word perhaps?!) does not contain the ASCII quote (") character, but some fancy alternative quotes (”, ”) that are not recognised by the compiler.
commented 1 day ago by (140 points)
Dear Sir, I have done amendments in my code as you suggested.  Thank you for your assistance.
commented 1 day ago by (34,450 points)
All good. :)
```a = 0011 1100