6

我在一个看起来像的文件中有一个二进制字符串

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100100101101100110000110100110110111000010100110110110110111000011001000010110010010001100010010001010010010100001011001100010100001100100011011101

(即 256 位)。我可以bitset<256>很快地将这个字符串设置为 a 的值吗?

目前我正在做

for (int t = sizeof(c) - 1; t > 0; t--) {
   if (c[t] == '1') {
      b |= 1;
   }
   b <<= 1;
}
b >>= 1;

但是我的结果是不正确的。

4

2 回答 2

7

我可以很快将此字符串设置为 bitset<256> 的值吗?

是的,您可以只使用构造函数,下面的示例直接取自文档并且也适用于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 ;
于 2013-06-16T01:37:05.537 回答
1

为什么不直接访问 by 索引?喜欢..

b[t] = c[t] - '0';
于 2013-06-16T01:31:07.330 回答