Чтобы преобразовать шестнадцатеричное число в десятичное в 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;
}