Преобразование шестнадцатеричного числа в десятичное в C++: объяснение различных методов

Чтобы преобразовать шестнадцатеричное число в десятичное в C++, можно использовать несколько методов. Вот некоторые из них:

Метод 1: использование функции stoi()

#include <iostream>
#include <string>
int main() {
    std::string hex = "ABCD"; // Hexadecimal number
    int decimal = std::stoi(hex, nullptr, 16); // Converts hex to decimal
    std::cout << "Decimal: " << decimal << std::endl;
    return 0;
}

Метод 2: использование строкового потока

#include <iostream>
#include <sstream>
int main() {
    std::string hex = "ABCD"; // Hexadecimal number
    std::stringstream ss;
    ss << std::hex << hex; // Converts hex to decimal
    int decimal;
    ss >> decimal;
    std::cout << "Decimal: " << decimal << std::endl;
    return 0;
}

Метод 3. Использование специального алгоритма

#include <iostream>
#include <string>
int hexToDecimal(std::string hex) {
    int decimal = 0;
    int base = 1;
    int size = hex.size();
    for (int i = size - 1; i >= 0; i--) {
        if (hex[i] >= '0' && hex[i] <= '9') {
            decimal += (hex[i] - '0') * base;
        } else if (hex[i] >= 'A' && hex[i] <= 'F') {
            decimal += (hex[i] - 'A' + 10) * base;
        }
        base *= 16;
    }
    return decimal;
}
int main() {
    std::string hex = "ABCD"; // Hexadecimal number
    int decimal = hexToDecimal(hex);
    std::cout << "Decimal: " << decimal << std::endl;
    return 0;
}