Алгоритм, используемый для преобразования двоичных данных в Int - PullRequest
0 голосов
/ 21 марта 2020

Мое назначение - использовать C ++ для преобразования строки, представляющей двоичное число, в int.

Например,

int result = BinaryToInt("10110");

должно дать result значение 22. Вот мой код:

#include<iostream>
#include<algorithm>
#include<string>

using namespace std;

int BinaryToInt(string s) {
    int result = 0;
    for (int i = 0; i < s.size(); ++i) {
        result *= 2;
        result += s[i] - '0';
    }
    return result;
}

Есть ли способ выполнить эту задачу без использования явных циклов? (Требуется, чтобы программа не включала такие ключевые слова, как for или while и т. Д.) Было предложено использовать встроенный алгоритм, но я не уверен, какой из них использовать или как реализовать это.

1 Ответ

4 голосов
/ 21 марта 2020

Если вы используете C ++ 11, у вас есть std::stoi:

int num = std::stoi("10110", nullptr, 2);
  • "10110" - строка, которую вы хотите преобразовать
  • 2 - база, с которой вы конвертируете
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...