如何将只包含0或1的字符串转换为二进制变量



如何根据C++字符串的文字值直接将其转换为二进制数据(只包含"0"或"1"(?

例如,我有一个字符串str,它的值是0010010。现在我想把这个字符串转换成一个二进制形式的变量,或者一个等于0b0010010(即18(的十进制变量。

int main() {
string str_1 = "001";
string str_2 = "0010";
string str = str_1 + str_2;
cout << str << endl;
int i = stoi(str);
double d = stod(str);
cout << i << " and " << d << endl;
}

我试过stoistod,但它们都不起作用。他们都把二进制CCD_ 7当作十进制CCD_。那么我怎样才能达到这个要求呢?非常感谢!

std::stoi有一个可选的第二个参数,用于向您提供有关解析停止位置的信息,还有一个可选第三个参数用于传递转换的基

int i = stoi(str, nullptr, 2);

这应该行得通。


推论:如果有疑问,请查看文档。;-(

最新更新