What is bitset::set() function in C++?
The bitset::set() function in C++ is used to set the bits either to zero or one depending on how the function is used. Two functionalities can be performed using this function:
- Set all the bits to one.
- Set the bit as zero or one at a specified position.
This function is available in the bitset header file.
Syntax
The syntax of bitset::set() function is shown below.
bitset& set();
bitset& set(size_t pos, bool val = true);
Parameters
The function accepts two optional parameters as shown below:
-
pos: This parameter is an unsigned integer and specifies the bit’s position that needs to be set. -
val: This parameter is a Boolean value with a default value oftrue, which specifies 1. This parameter denotes the value that needs to be set;truefor 1 andfalsefor 0.
Return value
The function returns a new bitset object that contains the set bits.
Code
Let’s have a look at the code now.
#include <iostream>#include <bitset>using namespace std;int main() {bitset<4> b1 = 10;cout << "Original value: " << b1 << endl;cout << "Flipped all bits: " << b1.set() << endl;cout << "Flipped second bit : " << b1.set(2, 0);return 0;}
Explanation
- In lines 1 and 2, we import the required header files.
- In line 6, we create one
bitsetobject that has the capacity to store 4 bits. This object will contain the binary representation of the integer 10. - In line 7, we print the original bit representation of the integer 10.
- In line 8, we call the
set()function and print the binary representation that contains all the bits to be set to 1. - In line 9, we again call the
set()function, but this time we pass the argument as 2 to set only the second bit and 0 to set zero at the second bit and then we print the new binary representation.
So, in this way, we can set the bits to zero or one of any number using the set() function in C++.