我需要找到一种方法来获取位集变量中的位序列,并将它们分配给 c++ 中的 uint32 变量。
例如,如果我有一个 bitset<32> 变量 "0xffff ffff",我想有一个 uint32 变量 ffff ffff。
我曾经将位序列作为字符串表示形式,但我决定使用位集来保存位。从字符串中传输它们会更容易吗?
bitset
有一个to_ulong
方法来做到这一点:
unsigned long to_ulong() const;
转换为无符号长整数
返回一个整数值的unsigned long
,该整数值与位集设置的位数相同。
例:
#include <bitset>
#include <iostream>
int main(void)
{
std::bitset<32> b(0xffffffff);
uint32_t i = b.to_ulong();
std::cout << b << std::endl;
std::cout << std::hex << i << std::endl;
return 0;
}
构建和运行:
$ make example && ./example
c++ example.cpp -o example
11111111111111111111111111111111
ffffffff