Bitset被分割成字符
Bitset split into chars
我有一个相当大的bitset:
bitset<128*8> bs;
我想要访问8位的组。
- bs.to_string ()
- 被分割成一个长度为8的vector
- 从这些字符串中创建一个新的bitset并调用to_ulong()
有更好的解决方案吗?性能是至关重要的,因为我在程序中多次调用这个方法。
std::bitset
有>>
算子
如果您只想访问并读取该值,可以使用下面的代码。它读取N 8位作为uint8_t
:
bitset<128*8> mask(0xFF);
uint8_t x = ((bs >> N * 8) & mask).to_ulong();
您可以这样做以避免创建字符串和一些复制:
for (uint32_t i = 0; i < bs.size(); i+=8) {
uint32_t uval = 0;
for (uint32_t j = 0; j < 8; j++) {
uval = (uval << 1) + bs[i + 7 - j];
}
std::cout << uval << std::endl;
}
但是您可能需要根据您的端序来处理索引
相关文章:
- C++字符*缓冲区的大小
- HEX值到wchar_t字符(UTF-8)的转换
- 为什么 Serial.println(<char[]>);返回随机字符?
- 我的字符计数代码计算错误.为什么
- 字符串-C++后显示的随机字符
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 如何在C++中从字符串中分割字符
- 为什么msgrcv()将垃圾字符馈送到缓冲区
- C++映射分割错误(核心转储)
- 将矢量的整数内容打印为字符串会导致分割错误
- 在字符串中计数字符出现时,C 分割故障
- 分割和分配字符
- Bitset被分割成字符
- Std::locale按特定字符分割字符串而不忽略它
- 字符*的分割错误
- Regex每两个字符分割字符串
- 将字符分割成字符指针数组
- 按分隔符分割字符数组,然后保存结果
- 分割错误与字符串和复制的字符数据
- 分割数组字符