Bitwise Operators.
& :-> Binary AND Operator copies a bit to the result if it exists in both operands.
| :-> Binary OR Operator copies a bit if it exists in either operand.
^ :-> Binary XOR Operator copies the bit if it is set in one operand but not both.
~ :-> Binary Ones Complement Operator is unary and has the effect of 'flipping' bits.
<< :-> Binary Left Shift Operator. The left operands value is moved left by the number of bits specified by the right operand.
>> :-> Binary Right Shift Operator. The left operands value is moved right by the number of bits specified by the right
operand.
Example
#include <stdio.h>
main()
{
unsigned int a = 60; /* 60 = 0011 1100 */
unsigned int b ;
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 );
}
& :-> Binary AND Operator copies a bit to the result if it exists in both operands.
| :-> Binary OR Operator copies a bit if it exists in either operand.
^ :-> Binary XOR Operator copies the bit if it is set in one operand but not both.
~ :-> Binary Ones Complement Operator is unary and has the effect of 'flipping' bits.
<< :-> Binary Left Shift Operator. The left operands value is moved left by the number of bits specified by the right operand.
>> :-> Binary Right Shift Operator. The left operands value is moved right by the number of bits specified by the right
operand.
Example
#include <stdio.h>
main()
{
unsigned int a = 60; /* 60 = 0011 1100 */
unsigned int b ;
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 );
}
0 Comments