Selected Reading

C++ Bitset::operator| Function



The C++ std::bitset::operator| performs bitwise OR operation on the current bitset object. It stores the result in another (new) bitset object.

The bitwise OR operator is a binary operator that performs a bitwise OR operation between the bits of two operands. It returns a value where each bit is set to 1 if either the corresponding bit of the left operand or the corresponding bit of the right operand is 1. Otherwise, the bit is set to 0.

A bitwise operator operates on individual bits of a binary number, rather than the whole number. It can be used to perform different operations, such as setting and clearing specific bits, checking if a bit is set or not, and manipulating data packed into bit fields.

Syntax

Following is the syntax for std::bitset::operator| −

template<size_t N>
bitset<N> operator| (const bitset<N>& first, const bitset<N>& second);

Parameters

  • first − First bitset object.
  • second − Second bitset object.

Return value

Returns bitset which contains result of bitwise OR operation.

Example 1

The following example shows the usage of std::bitset::operator| using two bitsets of the same size.

Here, we are creating two bitsets "b" and "mask" with "4" bits each, setting "b" to the binary value "1010", and "mask" to the binary value "0101". Then, we are performing a bitwise OR operation between them and storing the result in a new variable "result".

#include <iostream>
#include <bitset>
using namespace std;

int main() {
   bitset<4> b("1010");
   bitset<4> mask("0101");
   bitset<4> result = b | mask;
   cout << result << endl;
   return 0;
}

Output

Let us compile and run the above program, this will produce the following result −

1111

Example 2

Here, we are using a bitset and an integer to perform a bitwise OR operation.

In the following example, we are creating a bitset "bits" of size "8" with the binary value "11001100", and an integer "num" with the binary value "00111010". Then, we are performing a bitwise OR operation between them and storing the result in a new variable "result".

#include <iostream>
#include <bitset>
using namespace std;

int main() {
   bitset<8> bits("11001100");
   int num = 0b00111010;
   bitset<8> result = bits | bitset<8>(num);
   cout << result << endl;
   return 0;
}

Output

If we run the above code it will generate the following output −

11111110

Example 3

Now, we are trying to perform a bitwise OR operation on the bitset with itself. We are creating a bitset "bits" of size "3" with the binary value "110". Then, we are performing bitwise OR operation and storing the result in "bits".

#include <iostream>
#include <bitset>
using namespace std;

int main() {
   bitset<3> bits("110");
   bits = bits | bits;
   cout << bits << endl;  
   return 0;
}

Output

Following is the output of the above code −

110

Example 4

In here, we are using multiple (chaining) bitwise OR operations.

In the following example, we are creating three bitsets "a", "b", and "c" with binary values "1010", "0111", and "1011" respectively. Then, we are using the bitwise OR operator to first perform a bitwise OR operation between "b" and "c", and then between the resultant value and "a".

#include <iostream>
#include <bitset>
using namespace std;

int main() {
   bitset<4> a("1010");
   bitset<4> b("0111");
   bitset<4> c("1011");
   a = a | (b = b | c);
   cout << a << endl;
   cout << b << endl;
   return 0;
}

Output

Output of the above code is as follows −

1111
1111
Advertisements