C Bitwise OR Operator
In C, the Bitwise OR | operator is used to perform a bitwise OR operation between two integer operands. The operation compares corresponding bits of both operands and sets the resulting bit to 1 if at least one of the corresponding bits is 1. Otherwise, the resulting bit is 0.
The Bitwise OR operator is commonly used in bitwise manipulation, setting specific bits in a number, and working with flags.
Syntax of the Bitwise OR Operator
The syntax for using the Bitwise OR operator is:
result = operand1 | operand2;
Explanation:
operand1: The first integer operand.|: The Bitwise OR operator.operand2: The second integer operand.result: The integer result of the bitwise OR operation.- The operation is performed bit by bit, where each bit is set to
1if at least one of the corresponding bits inoperand1oroperand2is1.
Examples of the Bitwise OR Operator
1. Performing a Bitwise OR Operation on Two Integers
In this example, we will perform a Bitwise OR operation on two integers and display the result.
main.c
#include <stdio.h>
int main() {
int a = 5, b = 3;
int result = a | b;
printf("Bitwise OR of %d and %d is %d\n", a, b, result);
return 0;
}
Explanation:
- We declare two integers
a(5) andb(3). - We apply the
|operator toaandb. - The binary representation of
5is0101and of3is0011. - Performing a bitwise OR operation:
0101 (5)
| 0011 (3)
------------
0111 (7)
- The result is stored in
resultand printed as7.
Output:
Bitwise OR of 5 and 3 is 7
2. Using Bitwise OR to Set Specific Bits
In this example, we will use the Bitwise OR operator to set specific bits in a number.
main.c
#include <stdio.h>
int main() {
int num = 8; // Binary: 1000
int mask = 2; // Binary: 0010
int result = num | mask;
printf("Result after setting bits: %d\n", result);
return 0;
}
Explanation:
- We declare an integer
numwith the value8(binary1000). - We declare a mask
2(binary0010). - The Bitwise OR operation sets the bits where either operand has
1:
1000 (8)
| 0010 (2)
------------
1010 (10)
- The result is stored in
resultand printed as10.
Output:
Result after setting bits: 10
3. Using Bitwise OR for Flag Operations
In this example, we will use the Bitwise OR operator to set multiple flags in a status variable.
main.c
#include <stdio.h>
#define FLAG1 1 // Binary: 0001
#define FLAG2 2 // Binary: 0010
int main() {
int status = 0;
// Setting FLAG1 and FLAG2 using Bitwise OR
status = status | FLAG1;
status = status | FLAG2;
printf("Status after setting flags: %d\n", status);
return 0;
}
Explanation:
- We define two flags
FLAG1(1) andFLAG2(2). - We declare
statusand initialize it to0. - Using
status = status | FLAG1, we set FLAG1:
0000 (0)
| 0001 (1)
------------
0001 (1)
- Using
status = status | FLAG2, we set FLAG2:
0001 (1)
| 0010 (2)
------------
0011 (3)
- The final value of
statusis3, which is printed to output.
Conclusion
In this tutorial, we learned how to use the Bitwise OR | operator in C:
- It sets a bit to
1if at least one of the corresponding bits is1. - It is useful for bit manipulation, setting bits, and flag operations.
