GFG App
Open App
Browser
Continue

# C++ Program For Hexadecimal To Decimal Conversion

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