Program for Hexadecimal to Decimal
Last Updated :
15 Sep, 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++
#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.
Share your thoughts in the comments
Please Login to comment...