如何将位集变量的内容存储到 c 中的 uint32

  • 本文关键字:存储 uint32 中的 变量 c++
  • 更新时间 :
  • 英文 :


我需要找到一种方法来获取位集变量中的位序列,并将它们分配给 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

最新更新