如何將 C 字串(僅包含“0”或“1”)直接根據其字面值轉換為二進制資料?
例如,我有一個字串str,它的值為0010010. 現在我想將此字串轉換為二進制形式的變數,或等于0b0010010(is 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;
}
我嘗試了stoiand stod,但它們都無法正常作業。他們都將二進制0b0010010視為十進制10010。那么我怎樣才能達到這個要求呢?非常感謝!
uj5u.com熱心網友回復:
std::stoi有一個可選的第二個引數,為您提供有關決議停止位置的資訊,以及一個可選的第三個引數,用于傳遞轉換的基礎。
int i = stoi(str, nullptr, 2);
這應該有效。
推論:如果有疑問,請查看檔案。;-)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/520238.html
標籤:C 细绳二进制十进制根据
下一篇:查找子字串串列的開始和結束索引
