如何根据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;
}
我试过stoi
和stod
,但它们都不起作用。他们都把二进制CCD_ 7当作十进制CCD_。那么我怎样才能达到这个要求呢?非常感谢!
std::stoi
有一个可选的第二个参数,用于向您提供有关解析停止位置的信息,还有一个可选第三个参数用于传递转换的基。
int i = stoi(str, nullptr, 2);
这应该行得通。
推论:如果有疑问,请查看文档。;-(