0% found this document useful (0 votes)
31 views2 pages

4 - Bitwise Operators in C

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views2 pages

4 - Bitwise Operators in C

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

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 −

Operator Description Example

& 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.

<< Binary Left Shift Operator. The left operands value is


moved left by the number of bits specified by the right A << 2 = 240 i.e., 1111 0000
operand.

>> Binary Right Shift Operator. The left operands value is


moved right by the number of bits specified by the right A >> 2 = 15 i.e., 0000 1111
operand.

Example
Try the following example to understand all the bitwise operators available in C −

 Live Demo
#include <stdio.h>

main() {

unsigned int a = 60; /* 60 = 0011 1100 */


unsigned int b = 13; /* 13 = 0000 1101 */
int c = 0;

c = a & b; /* 12 = 0000 1100 */


printf("Line 1 - Value of c is %d\n", c );

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 );

c = a << 2; /* 240 = 1111 0000 */


printf("Line 5 - Value of c is %d\n", c );

c = a >> 2; /* 15 = 0000 1111 */


printf("Line 6 - 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

You might also like