我在文件中有一个二进制字符串,看起来像
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100100101101100110000110100110110111000010100110110110110111000011001000010110010010001100010010001010010010100001011001100010100001100100011011101
(256位)。我能否真的很快将此字符串设置为bitset<256>
的值?
目前我在做
for (int t = sizeof(c) - 1; t > 0; t--) {
if (c[t] == '1') {
b |= 1;
}
b <<= 1;
}
b >>= 1;
但我的结果不正确。
答案 0 :(得分:5)
我可以将此字符串设置为bitset的值&lt; 256&gt;真的很快?
是的,您可以使用constructor,以下示例直接来自文档,也适用于256
:
std::string bit_string = "110010";
std::bitset<8> b3(bit_string); // [0,0,1,1,0,0,1,0]
std::cout << b3.to_string() << std::endl ;
答案 1 :(得分:1)
为什么不直接访问by indices?像..
b[t] = c[t] - '0';