我不确定如何正确解释这一点,但我正在寻找一种自动设置 size
的方法或number
bitset<size>
的自动
示例
cout << bitset<8>(7) << endl;
具有固定位数的输出
0000 0111
我想自动输出可变位数,例如输出 111
和11001
而不是使用固定位。
基本上我想剪掉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/