BIT OPERATIONS
C has the advantage of direct bit manipulation and the operations available are,
| Operation | Operator | Comment | Value of Sum before | Value of sum after |
| AND | & | sum = sum & 2; | 4 | 0 |
| OR | | | sum = sum | 2; | 4 | 6 |
| Exclusive OR | ^ | sum = sum ^ 2; | 4 | 6 |
| 1's Complement | ~ | sum = ~sum; | 4 | -5 |
| Left Shift | << | sum = sum << 2; | 4 | 16 | Right Shift | >> | sum = sum >> 2; | 4 | 1 |
/* Example program illustrating << and >> */
#include <stdio.h>
main()
{
int n1 = 10, n2 = 20, i = 0;
i = n2 << 4; /* n2 shifted left four times */
printf("%d\n", i);
i = n1 >> 5; /* n1 shifted right five times */
printf("%d\n", i);
}
Sample Program Output
320
0
/* Example program using EOR operator */
#include <stdio.h>
main()
{
int value1 = 2, value2 = 4;
value1 ^= value2;
value2 ^= value1;
value1 ^= value2;
printf("Value1 = %d, Value2 = %d\n", value1, value2);
}
Sample Program Output
Value1 = 4, Value2 = 2
/* Example program using AND operator */
#include <stdio.h>
main()
{
int loop;
for( loop = 'a'; loop <= 'f'; loop++ )
printf("Loop = %c, AND 0xdf = %c\n", loop, loop & 0xdf);
}
Sample Program Output
Loop = a, AND 0xdf = A
Loop = b, AND 0xdf = B
Loop = c, AND 0xdf = C
Loop = d, AND 0xdf = D
Loop = e, AND 0xdf = E
Loop = f, AND 0xdf = F