Как создать набор битов из двоичной строки?

У меня есть двоичная строка в файле, который выглядит как

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100100101101100110000110100110110111000010100110110110110111000011001000010110010010001100010010001010010010100001011001100010100001100100011011101

(что составляет 256 бит). Могу ли я установить эту строку в качестве значения bitset<256> действительно быстро?

В настоящее время я делаю

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

Но мои результаты неверны.

6

Решение

Могу ли я установить эту строку в качестве значения набора битов<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 ;
5

Другие решения

Почему бы не получить доступ к индексам напрямую? лайк..

b[t] = c[t] - '0';
1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector