Various bitwise logical operators available in C programming language are as follows.
1. bitwise AND - conjunction
2. bitwise OR - disjunction
3. bitwise XOR - exclusive disjunction
4. bitwise NOT - negation(one's complement)
Bitwise AND - Conjunction:
If the bits from both the operands are 1, then the resultant bit is 1. For all others, the resultant bit is 0.
Example:
00001101 & 00111100 = 00001100
Bitwise OR - Disjunction:
If the bits from both the operands or any one of the operand is 1, then the resultant bit is 1. For others, the resultant bit is 0
Example:
00001101 | 00111100 = 00111101
Bitwise XOR - Exclusive disjunction:
If the bits from both the operands are 0 or 1, then the resultant bit is 0. For all others, the resultant bit is 1.
Example:
00001101 ^ 00111100 = 00110001
Bitwise NOT - Negation:
If the input bit is 1, then the resultant bit is 0. If the input bit is 0, then the resultant bit is 1.
Example:
~00001101 = 11110010
1. bitwise AND - conjunction
2. bitwise OR - disjunction
3. bitwise XOR - exclusive disjunction
4. bitwise NOT - negation(one's complement)
Bitwise AND - Conjunction:
If the bits from both the operands are 1, then the resultant bit is 1. For all others, the resultant bit is 0.
Example:
00001101 & 00111100 = 00001100
Bitwise OR - Disjunction:
If the bits from both the operands or any one of the operand is 1, then the resultant bit is 1. For others, the resultant bit is 0
Example:
00001101 | 00111100 = 00111101
Bitwise XOR - Exclusive disjunction:
If the bits from both the operands are 0 or 1, then the resultant bit is 0. For all others, the resultant bit is 1.
Example:
00001101 ^ 00111100 = 00110001
Bitwise NOT - Negation:
If the input bit is 1, then the resultant bit is 0. If the input bit is 0, then the resultant bit is 1.
Example:
~00001101 = 11110010
Operator | Operation |
---|---|
& | bitwise AND |
| | bitwise OR |
^ | bitwise XOR |
~ | bit inversion (one's complement) |
Example C program on bitwise logical operators:
#include <stdio.h> /* converts decimal to binary */ void decimal2binary(int input, char data[100]) { int i = 0, j, k = 0, binary[100]; while (input > 0) { binary[i] = input % 2; input = input / 2; i++; } for (j = i - 1; j >= 0; j--) { /* * sprintf - performs formatted output conversion * Here integer to string. And we keep on appending * some integer(0/1) to data for each iteration. So we * need to move our data pointer to write binary[j] * in proper position * / sprintf(data+k, "%d", binary[j]); k++; } data[k] = '\0'; } int main() { int input1, input2, ch; char data[100]; do { printf("Menu:\n"); printf("1. Left Shift\n2. Right Shift\n"); printf("3. Bitwise Inversion\n4. Bitwise AND\n"); printf("5. Bitwise OR\n6. Bitwise X-OR\n"); printf("Enter your choice:"); scanf("%d", &ch); switch (ch) { case 1: printf("Sample program for left shift operator\n"); printf("Enter your input:"); scanf("%d", &input1); printf("Enter no of bits to be shifted:"); scanf("%d", &input2); input1 = input1 << 2; decimal2binary(input1, data); printf("Output: %s\n", data); break; case 2: printf("Sample program for right shift operator\n"); printf("Enter your input:"); scanf("%d", &input1); printf("Enter no of bits to be shifted:"); scanf("%d", &input2); input1 = input1 >> 2; decimal2binary(input1, data); printf("Output: %s\n", data); break; case 3: printf("Sample program for bitwise " "inversion operator\n"); printf("Enter your input:"); scanf("%d", &input1); input1 = ~(input1); printf("%d\n", ~(-13)); decimal2binary(input1, data); printf("Output: %s\n", data); break; case 4: printf("Sample program for bitwise " "logical AND operator\n"); printf("Enter your input1:"); scanf("%d", &input1); printf("Enter your input2:"); scanf("%d", &input2); input1 = input1 & input2; decimal2binary(input1, data); printf("Output: %s\n", data); break; case 5: printf("Sample program for bitwise " "logical OR operator\n"); printf("Enter your input1:"); scanf("%d", &input1); printf("Enter your input2:"); scanf("%d", &input2); input1 = input1 | input2; decimal2binary(input1, data); printf("Output: %s\n", data); break; case 6: printf("Sample program for bitwise " "logical Exclusive OR operator\n"); printf("Enter your input1:"); scanf("%d", &input1); printf("Enter your input2:"); scanf("%d", &input2); input1 = input1 ^ input2; decimal2binary(input1, data); printf("Output: %s\n", data); break; default: printf("You have entered wrong option\n"); break; } printf("Do you want to continue(0/1):\n"); scanf("%d", &ch); } while(ch == 1); return 0; }
Output:
jp@jp-VirtualBox:~/$ ./a.out
Menu:
1. Left Shift
2. Right Shift
3. Bitwise Inversion
4. Bitwise AND
5. Bitwise OR
6. Bitwise X-OR
Enter your choice:1
Sample program for left shift operator
Enter your input:100
Enter no of bits to be shifted:2
Output: 110010000
Do you want to continue(0/1):
1
Menu:
1. Left Shift
2. Right Shift
3. Bitwise Inversion
4. Bitwise AND
5. Bitwise OR
6. Bitwise X-OR
Enter your choice:2
Sample program for right shift operator
Enter your input:100
Enter no of bits to be shifted:2
Output: 11001
Do you want to continue(0/1):
1
Menu:
1. Left Shift
2. Right Shift
3. Bitwise Inversion
4. Bitwise AND
5. Bitwise OR
6. Bitwise X-OR
Enter your choice:3
Sample program for bitwise inversion operator
Enter your input:-13
12
Output: 1100
Do you want to continue(0/1):
1
Menu:
1. Left Shift
2. Right Shift
3. Bitwise Inversion
4. Bitwise AND
5. Bitwise OR
6. Bitwise X-OR
Enter your choice:4
Sample program for bitwise logical AND operator
Enter your input1:12
Enter your input2:12
Output: 1100
Do you want to continue(0/1):
1
Menu:
1. Left Shift
2. Right Shift
3. Bitwise Inversion
4. Bitwise AND
5. Bitwise OR
6. Bitwise X-OR
Enter your choice:5
Sample program for bitwise logical OR operator
Enter your input1:11
Enter your input2:15
Output: 1111
Do you want to continue(0/1):
1
Menu:
1. Left Shift
2. Right Shift
3. Bitwise Inversion
4. Bitwise AND
5. Bitwise OR
6. Bitwise X-OR
Enter your choice:6
Sample program for bitwise logical Exclusive OR operator
Enter your input1:13
Enter your input2:6
Output: 1011
Do you want to continue(0/1):
0
Menu:
1. Left Shift
2. Right Shift
3. Bitwise Inversion
4. Bitwise AND
5. Bitwise OR
6. Bitwise X-OR
Enter your choice:1
Sample program for left shift operator
Enter your input:100
Enter no of bits to be shifted:2
Output: 110010000
Do you want to continue(0/1):
1
Menu:
1. Left Shift
2. Right Shift
3. Bitwise Inversion
4. Bitwise AND
5. Bitwise OR
6. Bitwise X-OR
Enter your choice:2
Sample program for right shift operator
Enter your input:100
Enter no of bits to be shifted:2
Output: 11001
Do you want to continue(0/1):
1
Menu:
1. Left Shift
2. Right Shift
3. Bitwise Inversion
4. Bitwise AND
5. Bitwise OR
6. Bitwise X-OR
Enter your choice:3
Sample program for bitwise inversion operator
Enter your input:-13
12
Output: 1100
Do you want to continue(0/1):
1
Menu:
1. Left Shift
2. Right Shift
3. Bitwise Inversion
4. Bitwise AND
5. Bitwise OR
6. Bitwise X-OR
Enter your choice:4
Sample program for bitwise logical AND operator
Enter your input1:12
Enter your input2:12
Output: 1100
Do you want to continue(0/1):
1
Menu:
1. Left Shift
2. Right Shift
3. Bitwise Inversion
4. Bitwise AND
5. Bitwise OR
6. Bitwise X-OR
Enter your choice:5
Sample program for bitwise logical OR operator
Enter your input1:11
Enter your input2:15
Output: 1111
Do you want to continue(0/1):
1
Menu:
1. Left Shift
2. Right Shift
3. Bitwise Inversion
4. Bitwise AND
5. Bitwise OR
6. Bitwise X-OR
Enter your choice:6
Sample program for bitwise logical Exclusive OR operator
Enter your input1:13
Enter your input2:6
Output: 1011
Do you want to continue(0/1):
0
Dell Laptop Service center are giving repair service at the door. We should high quality Dell out of warranty Laptop Repair, removal of virus, screen removal, wireless network set up, battery removal, motherboard replacement to several other are offered at budget friendly price and it’s Negotiable. We can fix them all in time by our well experience and certified technicians. If you want to repair your laptop in front of your eyesight, than you may call us: 7217871051
ReplyDelete