Program for Hexadecimal to Decimal
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 program int main() { string hexNum = "1A" ; cout << (hexadecimalToDecimal(hexNum)); // This code is contributed by rakeshsahni return 0; } |
Java
// Java program to convert hexadecimal to decimal import java.io.*; class GFG { // Function to convert hexadecimal to decimal static int hexadecimalToDecimal(String hexVal) { int len = hexVal.length(); // 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.charAt(i) >= '0' && hexVal.charAt(i) <= '9' ) { dec_val += (hexVal.charAt(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.charAt(i) >= 'A' && hexVal.charAt(i) <= 'F' ) { dec_val += (hexVal.charAt(i) - 55 ) * base; // incrementing base by power base = base * 16 ; } } return dec_val; } // driver program public static void main(String[] args) { String hexNum = "1A" ; System.out.println(hexadecimalToDecimal(hexNum)); } } |
Python3
# Python3 program to convert # hexadecimal to decimal # Function to convert hexadecimal # to decimal def hexadecimalToDecimal(hexval): # Finding length length = len (hexval) # Initialize base value to 1, # i.e. 16*0 base = 1 dec_val = 0 # Extracting characters as digits # from last character for i in range (length - 1 , - 1 , - 1 ): # If character lies in '0'-'9', # converting it to integral 0-9 # by subtracting 48 from ASCII value if hexval[i] > = '0' and hexval[i] < = '9' : dec_val + = ( ord (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 elif hexval[i] > = 'A' and hexval[i] < = 'F' : dec_val + = ( ord (hexval[i]) - 55 ) * base # Incrementing base by power base = base * 16 return dec_val # Driver code if __name__ = = '__main__' : hexnum = '1A' print (hexadecimalToDecimal(hexnum)) # This code is contributed by virusbuddah_ |
C#
// C# program to convert // hexadecimal to decimal using System; class GFG { // Function to convert // hexadecimal to decimal static int hexadecimalToDecimal(String hexVal) { int len = hexVal.Length; // Initializing base1 value // to 1, i.e 16^0 int base1 = 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 += (hexVal[i] - 48) * base1; // incrementing base1 by power base1 = base1 * 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 += (hexVal[i] - 55) * base1; // incrementing base1 by power base1 = base1 * 16; } } return dec_val; } // Driver Code static void Main() { String hexNum = "1A" ; Console.WriteLine(hexadecimalToDecimal(hexNum)); } } // This code is contributed by mits |
PHP
<?php // PHP program to convert // hexadecimal to decimal // Function to convert // hexadecimal to decimal function hexadecimalToDecimal( $hexVal ) { $len = strlen ( $hexVal ); // Initializing base value // to 1, i.e 16^0 $base = 1; $dec_val = 0; // Extracting characters as // digits from last character for ( $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 += (ord( $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 += (ord( $hexVal [ $i ]) - 55) * $base ; // incrementing base by power $base = $base * 16; } } return $dec_val ; } // Driver Code $hexNum = "1A" ; echo hexadecimalToDecimal( $hexNum ); // This code is contributed by mits ?> |
Javascript
<script> // javascript program to convert hexadecimal to decimal // Function to convert hexadecimal to decimal function hexadecimalToDecimal(hexVal) { var len = hexVal.length; // Initializing base value to 1, i.e 16^0 var base = 1; var dec_val = 0; // Extracting characters as digits from last // character for ( var 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.charAt(i) >= '0' && hexVal.charAt(i) <= '9' ) { dec_val += (hexVal.charAt(i).charCodeAt(0) - 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.charAt(i) >= 'A' && hexVal.charAt(i) <= 'F' ) { dec_val += (hexVal.charAt(i).charCodeAt(0) - 55) * base; // incrementing base by power base = base * 16; } } return dec_val; } // driver program var hexNum = "1A" ; document.write(hexadecimalToDecimal(hexNum)); // This code is contributed by 29AjayKumar </script> |
26
Time Complexity: O(N), where N is the number of digits in the given hexadecimal number.
Space Complexity: O(1).
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); } int main() { string n = "1A" ; cout << HexToDec(n); return 0; } // This code is contributed by rakeshsahni |
Java
// Java program to convert hexadecimal to decimal 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
# Python program to convert hexadecimal to decimal def HexToDec(n): return int (n, 16 ); if __name__ = = '__main__' : n = "1A" ; print (HexToDec(n)); # This code is contributed by 29AjayKumar |
C#
// C# program to convert hexadecimal to decimal 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)); } } // This code is contributed by Amit Katiyar |
Javascript
<script> // javascript program to convert octal to decimal function HexToDec(n) { return parseInt(n, 16); } var n = "1A" ; document.write(HexToDec(n)); // This code is contributed by 29AjayKumar </script> |
26
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.