如何在C ++中接受用户的二进制输入?

时间:2014-03-26 19:53:11

标签: c++ binary bits

我想在用户给出的二进制输入上用C ++进行二进制运算,即XOR。用户将仅输入0和1的序列。如何声明变量以接受输入1和0作为二进制位?

2 个答案:

答案 0 :(得分:3)

一种方便的方法是使用std::bitset。如果您查看其constructors,可以选择从多个数据源(包括std::string和C样式字符串)构造位集。构造函数验证输入并在给出无效输入的情况下抛出异常。

然后,您可以直接使用其bitwise operators。异或是operator^

std::bitset是固定大小的容器,因此您必须将最大预期长度指定为constexpr值。

答案 1 :(得分:0)

将序列作为字符串,然后使用strtol与base 2 |或创建自己的函数将字符串转换为整数(这并不是很难)|或直接使用字符串(string [i] - ' 0')^ ...

敞开心扉;)