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++
#include <bits/stdc++.h>
using namespace std;
int hexadecimalToDecimal(string hexVal)
{
int len = hexVal.size();
int base = 1;
int dec_val = 0;
for ( int i = len - 1; i >= 0; i--) {
if (hexVal[i] >= '0' && hexVal[i] <= '9' ) {
dec_val += ( int (hexVal[i]) - 48) * base;
base = base * 16;
}
else if (hexVal[i] >= 'A' && hexVal[i] <= 'F' ) {
dec_val += ( int (hexVal[i]) - 55) * base;
base = base * 16;
}
}
return dec_val;
}
int main()
{
string hexNum = "1A" ;
cout << (hexadecimalToDecimal(hexNum));
return 0;
}
|
Java
import java.io.*;
class GFG {
static int hexadecimalToDecimal(String hexVal)
{
int len = hexVal.length();
int base = 1 ;
int dec_val = 0 ;
for ( int i = len - 1 ; i >= 0 ; i--) {
if (hexVal.charAt(i) >= '0'
&& hexVal.charAt(i) <= '9' ) {
dec_val += (hexVal.charAt(i) - 48 ) * base;
base = base * 16 ;
}
else if (hexVal.charAt(i) >= 'A'
&& hexVal.charAt(i) <= 'F' ) {
dec_val += (hexVal.charAt(i) - 55 ) * base;
base = base * 16 ;
}
}
return dec_val;
}
public static void main(String[] args)
{
String hexNum = "1A" ;
System.out.println(hexadecimalToDecimal(hexNum));
}
}
|
Python3
def hexadecimalToDecimal(hexval):
length = len (hexval)
base = 1
dec_val = 0
for i in range (length - 1 , - 1 , - 1 ):
if hexval[i] > = '0' and hexval[i] < = '9' :
dec_val + = ( ord (hexval[i]) - 48 ) * base
base = base * 16
elif hexval[i] > = 'A' and hexval[i] < = 'F' :
dec_val + = ( ord (hexval[i]) - 55 ) * base
base = base * 16
return dec_val
if __name__ = = '__main__' :
hexnum = '1A'
print (hexadecimalToDecimal(hexnum))
|
C#
using System;
class GFG {
static int hexadecimalToDecimal(String hexVal)
{
int len = hexVal.Length;
int base1 = 1;
int dec_val = 0;
for ( int i = len - 1; i >= 0; i--) {
if (hexVal[i] >= '0' && hexVal[i] <= '9' ) {
dec_val += (hexVal[i] - 48) * base1;
base1 = base1 * 16;
}
else if (hexVal[i] >= 'A' && hexVal[i] <= 'F' ) {
dec_val += (hexVal[i] - 55) * base1;
base1 = base1 * 16;
}
}
return dec_val;
}
static void Main()
{
String hexNum = "1A" ;
Console.WriteLine(hexadecimalToDecimal(hexNum));
}
}
|
PHP
<?php
function hexadecimalToDecimal( $hexVal )
{
$len = strlen ( $hexVal );
$base = 1;
$dec_val = 0;
for ( $i = $len - 1; $i >= 0; $i --)
{
if ( $hexVal [ $i ] >= '0' &&
$hexVal [ $i ] <= '9' )
{
$dec_val += (ord( $hexVal [ $i ]) - 48) *
$base ;
$base = $base * 16;
}
else if ( $hexVal [ $i ] >= 'A' &&
$hexVal [ $i ] <= 'F' )
{
$dec_val += (ord( $hexVal [ $i ]) - 55) *
$base ;
$base = $base * 16;
}
}
return $dec_val ;
}
$hexNum = "1A" ;
echo hexadecimalToDecimal( $hexNum );
?>
|
Javascript
<script>
function hexadecimalToDecimal(hexVal)
{
var len = hexVal.length;
var base = 1;
var dec_val = 0;
for ( var i = len - 1; i >= 0; i--) {
if (hexVal.charAt(i) >= '0'
&& hexVal.charAt(i) <= '9' ) {
dec_val += (hexVal.charAt(i).charCodeAt(0) - 48) * base;
base = base * 16;
}
else if (hexVal.charAt(i) >= 'A'
&& hexVal.charAt(i) <= 'F' ) {
dec_val += (hexVal.charAt(i).charCodeAt(0) - 55) * base;
base = base * 16;
}
}
return dec_val;
}
var hexNum = "1A" ;
document.write(hexadecimalToDecimal(hexNum));
</script>
|
Time Complexity: O(N), where N is the number of digits in the given hexadecimal number.
Space Complexity: O(1).
Using predefined function
C++
#include <bits/stdc++.h>
using namespace std;
int HexToDec(string n) { return stoi(n, 0, 16); }
int main()
{
string n = "1A" ;
cout << HexToDec(n);
return 0;
}
|
Java
import java.io.*;
class GFG {
public static int HexToDec(String n)
{
return Integer.parseInt(n, 16 );
}
public static void main(String[] args)
{
String n = "1A" ;
System.out.println(HexToDec(n));
}
}
|
Python3
def HexToDec(n):
return int (n, 16 );
if __name__ = = '__main__' :
n = "1A" ;
print (HexToDec(n));
|
C#
using System;
public class GFG {
public static int HexToDec(String n)
{
return Convert.ToInt32(n, 16);
}
public static void Main(String[] args)
{
String n = "1A" ;
Console.WriteLine(HexToDec(n));
}
}
|
Javascript
<script>
function HexToDec(n)
{
return parseInt(n, 16);
}
var n = "1A" ;
document.write(HexToDec(n));
</script>
|
Time complexity: O(1) – the conversion of hexadecimal to decimal is done in constant time using the stoi function.
Auxiliary Space: O(1) – the only space used is for the string n and the returned integer value, which are constant in size regardless of the input value.
If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Level Up Your GATE Prep!
Embark on a transformative journey towards GATE success by choosing
Data Science & AI as your second paper choice with our specialized course. If you find yourself lost in the vast landscape of the GATE syllabus, our program is the compass you need.
Last Updated :
15 Sep, 2023
Like Article
Save Article