# C++ Program For Hexadecimal To Decimal Conversion

• Last Updated : 17 Jan, 2023

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