Вопрос задан 13.01.2020 в 04:08. Предмет Информатика. Спрашивает Madrid Real.

Напишите функцию hexToDec, которая преобразует шестнадцатеричное число (заданное в виде строки) в

десятичное число int hexToDec(std::string hexString) { return 0; }
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Антонова Евгения.
#include <iostream>
#include <string>
#include <math.h>
#include <algorithm>
using namespace std;

int hexCharToDec(char hexChar)
{
switch (hexChar) {
case 'a':
return 10;
break;
case 'b':
return 11;
break;
case 'c':
return 12;
break;
case 'd':
return 13;
break;
case 'e':
return 14;
break;
case 'f':
return 15;
break;
default:
return hexChar - 48;
break;
}
}

int hexToDec(string hexString)
{
std::transform(hexString.begin(), hexString.end(), hexString.begin(), ::tolower);
int power = 0, ret = 0;
for (string::reverse_iterator rit = hexString.rbegin(); rit != hexString.rend(); ++rit) {
ret += hexCharToDec(*rit) * pow(16, power);
power++;
}
return ret;
}

int main()
{
string s;
cout << "Строка: ";
cin >> s;
cout << endl << "Ответ: " << hexToDec(s) << endl;
return 0;
}
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вот пример функции `hexToDec`, которая преобразует шестнадцатеричное число (заданное в виде строки) в десятичное число:

```cpp #include #include #include

int hexToDec(std::string hexString) { int decimal = 0; int power = 0; // Проходимся по каждому символу в строке for (int i = hexString.length() - 1; i >= 0; i--) { char c = hexString[i]; // Если символ - цифра от '0' до '9' if (c >= '0' && c <= '9') { decimal += (c - '0') * pow(16, power); } // Если символ - буква от 'A' до 'F' else if (c >= 'A' && c <= 'F') { decimal += (c - 'A' + 10) * pow(16, power); } // Если символ - буква от 'a' до 'f' else if (c >= 'a' && c <= 'f') { decimal += (c - 'a' + 10) * pow(16, power); } power++; } return decimal; }

int main() { std::string hexNumber = "1A"; int decimalNumber = hexToDec(hexNumber); std::cout << "Hexadecimal: " << hexNumber << std::endl; std::cout << "Decimal: " << decimalNumber << std::endl; return 0; } ```

В этом примере функция `hexToDec` принимает шестнадцатеричное число в виде строки `hexString` и возвращает его десятичное представление в виде целого числа. Функция проходит по каждому символу в строке, начиная с конца, и преобразует его в соответствующее значение в десятичной системе счисления. Затем эти значения суммируются, учитывая позицию символа в числе и основание системы счисления (16). Функция использует функцию `pow` из библиотеки `` для вычисления степени числа 16.

В основной функции `main` приведен пример использования функции `hexToDec`. Шестнадцатеричное число "1A" преобразуется в десятичное число и выводится на экран.

Примечание: В этом примере не предусмотрены проверки на некорректные символы в строке или на переполнение. Если вам нужно обрабатывать такие случаи, вам может потребоваться добавить соответствующую логику в функцию `hexToDec`.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос