unsigned long to_ulong() const | (until C++23) | |
constexpr unsigned long to_ulong() const | (since C++23) |
Converts the contents of the bitset to an unsigned long
integer.
The first bit of the bitset corresponds to the least significant digit of the number and the last bit corresponds to the most significant digit.
(none).
the converted integer.
throws std::overflow_error
if the value can not be represented in unsigned long
.
#include <iostream> #include <stdexcept> #include <bitset> int main() { for (unsigned long i = 0; i < 10; ++i) { std::bitset<5> b(i); std::bitset<5> b_inverted = ~b; std::cout << i << '\t' << b << '\t' << b_inverted << '\t' << b_inverted.to_ulong() << '\n'; } std::cout << std::bitset<32>().to_string('-') << '\n'; try { std::bitset<128> x(42); std::cout << x.to_ulong() << '\n'; x.flip(); std::cout << x.to_ulong() << '\n'; // throws } catch (const std::overflow_error& ex) { std::cout << "ex: " << ex.what() << '\n'; } }
Possible output:
0 00000 11111 31 1 00001 11110 30 2 00010 11101 29 3 00011 11100 28 4 00100 11011 27 5 00101 11010 26 6 00110 11001 25 7 00111 11000 24 8 01000 10111 23 9 01001 10110 22 -------------------------------- 42 ex: bitset to_ulong overflow error
returns a string representation of the data (public member function) |
|
(C++11) | returns an unsigned long long integer representation of the data (public member function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/utility/bitset/to_ulong