我想在用户给出的二进制输入上用C ++进行二进制运算,即XOR。用户将仅输入0和1的序列。如何声明变量以接受输入1和0作为二进制位?
答案 0 :(得分:3)
一种方便的方法是使用std::bitset
。如果您查看其constructors,可以选择从多个数据源(包括std::string
和C样式字符串)构造位集。构造函数验证输入并在给出无效输入的情况下抛出异常。
然后,您可以直接使用其bitwise operators。异或是operator^
。
std::bitset
是固定大小的容器,因此您必须将最大预期长度指定为constexpr
值。
答案 1 :(得分:0)
将序列作为字符串,然后使用strtol与base 2 |或创建自己的函数将字符串转换为整数(这并不是很难)|或直接使用字符串(string [i] - ' 0')^ ...
敞开心扉;)