Open In App

C++ Program For Hexadecimal To Decimal Conversion

The hexadecimal numbers are base 16 numbers that use 16 symbols {0, 1, 2, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} to represent all digits. Here, (A, B, C, D, E, F) represents (10, 11, 12, 13, 14, 15). Decimal numbers are base 10 numbers with 10 symbols to represent all digits.

In this article, we will learn to write a program in C++ to convert the hexadecimal number into an equivalent decimal number.



Algorithm

The below diagram explains how to convert a hexadecimal number (1AB) to an equivalent decimal value:  

C++ Program to Convert Hexadecimal Number to Decimal Number




// C++ program to convert hexadecimal
// to decimal
#include <bits/stdc++.h>
using namespace std;
  
// Function to convert hexadecimal
// to decimal
int hexadecimalToDecimal(string hexVal)
{
    int len = hexVal.size();
  
    // Initializing base value to 1,
    // i.e 16^0
    int base = 1;
  
    int dec_val = 0;
  
    // Extracting characters as digits
    // from last character
    for (int i = len - 1; i >= 0; i--) {
        // If character lies in '0'-'9',
        // converting it to integral 0-9
        // by subtracting 48 from ASCII value
        if (hexVal[i] >= '0' && hexVal[i] <= '9') {
            dec_val += (int(hexVal[i]) - 48) * base;
  
            // incrementing base by power
            base = base * 16;
        }
  
        // If character lies in 'A'-'F' , converting
        // it to integral 10 - 15 by subtracting 55
        // from ASCII value
        else if (hexVal[i] >= 'A' && hexVal[i] <= 'F') {
            dec_val += (int(hexVal[i]) - 55) * base;
  
            // Incrementing base by power
            base = base * 16;
        }
    }
    return dec_val;
}
  
// Driver code
int main()
{
    string hexNum = "1A";
    cout << (hexadecimalToDecimal(hexNum));
  
    return 0;
}

Output

26

Complexity Analysis

Please refer complete article on Program for Hexadecimal to Decimal for more details!


Article Tags :