我不确定如何正确解释这一点,但我正在寻找一种自动设置size
或number
自动
实施例
bitset<size>
具有固定位数的输出
cout << bitset<8>(7) << endl;
我想自动输出可变位数,例如输出0000 0111
和111
,而不是使用固定位。
基本上我想在不使用
时切断前面的11001
答案 0 :(得分:1)
这实际上是两个问题。第一个是如何修剪给定位集的输出(即删除前导0
),第二个是如何将输出减少到给定大小。
由于您只对ostream
输出感兴趣,因此使用bitset::to_string()
转换功能,然后应用string::substr
非常合适。
有了这个,对于你的例子 - 你似乎想要保留7
位 - 你会得到:
std::cout << std::bitset<8>{}.to_string().substr(1) << std::endl; //removes the first bit
您可以将其与方法组合以查找第一个设置位以构造trim
函数。
答案 1 :(得分:0)
width: 56px;
std::bitset::_Find.first 将找到第一个位的索引。
我们将 n2 转换为字符串,然后我们从索引中找到字符串的子字符串,我们找到最高有效位减去总长度 - 1,因此给我们所需的结果。
测试用例:
256
100000000