Как принять двоичный ввод от пользователя в C ++?

Я хочу сделать двоичную операцию в C ++, а именно XOR, с двоичным вводом, данным пользователем. Пользователь введет только последовательность нулей и единиц. Как я могу объявить переменную, чтобы принимать входные 1 и 0 как двоичные биты?

0

Решение

Удобным способом является использование std::bitset. Если вы посмотрите на его конструкторы, Есть варианты для создания набора битов из нескольких источников данных, включая std::string и C-стиль струн. Конструкторы проверяют ввод и выдают исключение, если задан неверный ввод.

Затем вы можете использовать его побитовые операторы непосредственно. XOR это operator^,

std::bitset является контейнером фиксированного размера, поэтому вам нужно указать максимальную ожидаемую длину в виде constexpr значение.

3

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

получить последовательность в виде строки, затем использовать strtol с основанием 2 | или создайте свою собственную функцию для преобразования строки в целое число (это не очень сложно) | или используйте строку напрямую (string [i] — ‘0’) ^ …

Открой свой разум 😉

0

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