У меня есть двоичная строка в файле, который выглядит как
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100100101101100110000110100110110111000010100110110110110111000011001000010110010010001100010010001010010010100001011001100010100001100100011011101
(что составляет 256 бит). Могу ли я установить эту строку в качестве значения bitset<256>
действительно быстро?
В настоящее время я делаю
for (int t = sizeof(c) - 1; t > 0; t--) {
if (c[t] == '1') {
b |= 1;
}
b <<= 1;
}
b >>= 1;
Но мои результаты неверны.
Могу ли я установить эту строку в качестве значения набора битов<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 ;
Почему бы не получить доступ к индексам напрямую? лайк..
b[t] = c[t] - '0';