Я хочу сделать двоичную операцию в C ++, а именно XOR, с двоичным вводом, данным пользователем. Пользователь введет только последовательность нулей и единиц. Как я могу объявить переменную, чтобы принимать входные 1 и 0 как двоичные биты?
Удобным способом является использование std::bitset
. Если вы посмотрите на его конструкторы, Есть варианты для создания набора битов из нескольких источников данных, включая std::string
и C-стиль струн. Конструкторы проверяют ввод и выдают исключение, если задан неверный ввод.
Затем вы можете использовать его побитовые операторы непосредственно. XOR это operator^
,
std::bitset
является контейнером фиксированного размера, поэтому вам нужно указать максимальную ожидаемую длину в виде constexpr
значение.
получить последовательность в виде строки, затем использовать strtol с основанием 2 | или создайте свою собственную функцию для преобразования строки в целое число (это не очень сложно) | или используйте строку напрямую (string [i] — ‘0’) ^ …
Открой свой разум 😉