c++ - std::bitset<size> 中的可变位长度

标签 c++ bitset std-bitset

我不确定如何正确解释这一点,但我正在寻找一种自动设置 size 的方法或number bitset<size>的自动

示例

cout << bitset<8>(7) << endl;

具有固定位数的输出

0000 0111

我想自动输出可变位数,例如输出 11111001而不是使用固定位。

基本上我想剪掉0不使用时在前面

最佳答案

这实际上是两个问题合二为一。第一个是如何修剪给定位集的输出(即删除前导 0),第二个是如何将输出减少到给定大小。

由于您只对 ostream 输出感兴趣,因此对于两者来说,使用 bitset::to_string() 转换函数,然后应用字符串::substr

有了这个,对于您的示例 - 您似乎想保留 7 位 - 您将得到:

std::cout << std::bitset<8>{}.to_string().substr(1) << std::endl;  //removes the first bit 

您可以将其与查找第一个设置位的方法结合起来,以构造 trim 函数。

关于c++ - std::bitset<size> 中的可变位长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40184012/

相关文章:

c++ - 如何在没有未定义行为的情况下安全地偏移位?

c++ - 如果库 dosnt 存在于 usr/lib 下,我得到一个错误库未找到

c++ - 如何将 std::bitset<N> 转换为 std::bitset<M>?

c# - const uint8* 的 C++ 到 C# 转换

mysql - 将标签保存为 MySQL 中的位字段。带索引?

c++ - 似乎无法使用左移或右移

Java BitSet 与字节数组的转换错误

c++ - g++ 为 std::bitset 分配内存不足

c++ - 使用 std::fstream 会导致程序在 PASE for i (7.3) 中以 SIGILL 结束

c++ - 将对象参数作为 const 传递并读取它