Skip to content
Related Articles
Get the best out of our app
GFG App
Open App
geeksforgeeks
Browser
Continue

Related Articles

C++ Program For Hexadecimal To Decimal Conversion

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

Given a hexadecimal number as input, we need to write a program to convert the given hexadecimal number into an equivalent decimal number.

Examples:  

Input: 67
Output: 103

Input: 512
Output: 1298

Input: 123
Output: 291

We know that hexadecimal number uses 16 symbols {0, 1, 2, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} to represent all numbers. Here, (A, B, C, D, E, F) represents (10, 11, 12, 13, 14, 15). 

The idea is to extract the digits of a given hexadecimal number starting from the rightmost digit and keep a variable dec_value. At the time of extracting digits from the hexadecimal number, multiply the digit with the proper base (Power of 16) and add it to the variable dec_value. In the end, the variable dec_value will store the required decimal number.

For Example: If the hexadecimal number is 1A. 

dec_value = 1*(16^1) + 10*(16^0) = 26

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

Below is the implementation of the above idea. 

C++




// 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

Using predefined function

C++




// C++ program to convert octal 
// to decimal
#include <bits/stdc++.h>
using namespace std;
int HexToDec(string n) { return stoi(n, 0, 16); }
  
// Driver code
int main()
{
    string n = "1A";
    cout << HexToDec(n);
    return 0;
}


Output:

26

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


My Personal Notes arrow_drop_up
Last Updated : 17 Jan, 2023
Like Article
Save Article
Similar Reads