std::bitset<N>::to_ulong
出自cppreference.com
| |
(C++23 起為 constexpr) |
|
轉換 bitset 的內容為 unsigned long 整數。
bitset 的首位對應數值的最低有效位,而尾位對應最高有效位。
參數
(無)
返回值
轉換出的整數
異常
若值不能以 unsigned long 表示則拋出 std::overflow_error。
示例
運行此代碼
#include <bitset>
#include <iostream>
#include <stdexcept>
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'; // 抛出异常
}
catch (const std::overflow_error& ex)
{
std::cout << "ex: " << ex.what() << '\n';
}
}
可能的輸出:
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
參閱
| 返回數據的字符串表示 (公開成員函數) | |
(C++11) |
返回數據的 unsigned long long 整數表示 (公開成員函數) |