Registro Hexadecimal a Decimal

Dado un número hexadecimal como entrada, necesitamos escribir un programa para convertir el número hexadecimal dado en su número decimal equivalente.

Ejemplos:

Input : 67
Output: 103

Input : 512
Output: 1298

Input : 123
Output: 291

Sabemos que un número hexadecimal usa 16 símbolos {0, 1, 2, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} para representar todos los números. Aquí, (A, B, C, D, E, F) representa (10, 11, 12, 13, 14, 15).

La idea es restar los dígitos de un número hexadecimal dado del dígito correcto y mantener el valor de una dec_variable. En el momento en que se eliminen los dígitos del número hexadecimal, multiplique el dígito por la base adecuada (potencia de 16) y agréguelo a la variable dec_value. Finalmente, la variable dec_value almacenará el número decimal requerido.

Por ejemplo: si el número hexadecimal es 1A.
valor_dec = 1*(16^1) + 10*(16^0) = 26

El siguiente diagrama explica cómo convertir un número hexadecimal (1AB) a un valor decimal equivalente:

A continuación se muestra la implementación de la idea anterior.

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>

Producción

26

Uso de una función predefinida

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>

Producción

26

Este artículo ha sido agregado agarwal duro. Si te gusta GeeksforGeeks y quieres contribuir, también puedes escribir un artículo usándolo. escribir.geeksforgeeks.org o envíe su artículo por correo a review-team@geeksforgeeks.org. Vea su artículo destacado en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba un comentario si encuentra algún problema o si desea compartir más información sobre el tema tratado anteriormente.

Mis notas personales
flecha_caer_arriba

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *