Programa en C para convertir Hexadecimal a Decimal

Programa en C para convertir Hexadecimal a Decimal

En esta publicación de blog, veremos el programa C para convertir hexadecimal a decimal. En la entrevista, las personas hacen las siguientes preguntas:

  • ¿Cómo convertirá el valor hexadecimal a decimal?
  • ¿Escribir un programa en C para convertir el valor del sistema numérico hexadecimal al sistema numérico decimal?
  • ¿Implementar lógica para convertir un número hexadecimal a un sistema numérico decimal?
  • ¿Obtener un número hexadecimal del usuario y convertirlo a su equivalente decimal?

Ejemplos:

Input : 67
Output : 103

Input : 512
Output : 1298

Input: 123
Output: 291

Necesitamos saber los números decimales y hexadecimales antes de escribir el programa C para convertir hexadecimales a decimales.

El sistema numérico hexadecimal es un sistema numérico de base 16. El número hexadecimal está representado por 16 valores, es decir, 0 1 2 3 4 5 6 7 8 9 A B C D E F.

El sistema numérico decimal es un sistema numérico de base 10. Utiliza 10 símbolos para representar todos los números, es decir, 0123456789

Lógica para convertir sistema hexadecimal a decimal:

Sabemos que en el número hexadecimal se usan 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).

Necesitamos ejecutar un ciclo de 0 a (buffer_length -1). buffer_length es la longitud del búfer que contiene el número hexadecimal ingresado.

Para convertir hexadecimal a decimal, necesitamos extraer los dígitos de un número hexadecimal dado del búfer. Al momento de extraer dígitos del número hexadecimal, multiplica el dígito con la base adecuada (Potencia de 16) y súmalo a la variable “decimal”.

Después de finalizar la iteración, la variable "decimal" almacenará el número decimal resultante.

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

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

Programa en C para convertir sistema numérico hexadecimal a decimal:

#include <stdio.h>
#include <math.h>
#include <string.h>

#define ARRAY_SIZE  20

int main()
{
    char hex[ARRAY_SIZE];
    long long decimal = 0, base = 1;
    int i = 0, value, length;

    /* Get hexadecimal value from user */
    printf("Enter hexadecimal number: ");
    fflush(stdin);
    fgets(hex,ARRAY_SIZE,stdin);

    length = strlen(hex);
    for(i = length--; i >= 0; i--)
    {

        if(hex[i] >= '0' && hex[i] <= '9')
        {
            decimal += (hex[i] - 48) * base;
            base *= 16;
        }
        else if(hex[i] >= 'A' && hex[i] <= 'F')
        {
            decimal += (hex[i] - 55) * base;
            base *= 16;
        }
        else if(hex[i] >= 'a' && hex[i] <= 'f')
        {
            decimal += (hex[i] - 87) * base;
            base *= 16;
        }
    }

    printf("\nHexadecimal number = %s", hex);
    printf("Decimal number = %lld\n", decimal);

    return 0;
}

Salida:

Enter hexadecimal number: 1A

Hexadecimal number = 1A
Decimal number = 26

Artículos recomendados para ti:

  • Programa en C para encontrar un número de neón.
  • Encuentre el número primo usando el programa C.
  • Encuentra todos los números primos hasta n usando la división de prueba y el algoritmo Tamiz de Eratóstenes.
  • ¿Comprobar la validez de la fecha en C?
  • Cómo usar if en programación C.
  • Conjunto de caracteres del lenguaje C.
  • ¿Cómo usar la condición if-else de C?
  • ¿Cómo usar el bucle for en C?
  • Elementos del lenguaje C.
  • Tipo de datos en lenguaje C.
  • Operadores con precedencia y asociatividad.
  • 100 preguntas de la entrevista C.
  • Programa para contar el número de palabras en una cadena y un archivo determinados.
  • 5 maneras de encontrar el factorial de un número en C.
  • Programa en C para encontrar el rango de tipos de datos fundamentales.
  • Programa de series de Fibonacci en C:una introducción simple.
  • ¿Cómo usar atoi() y cómo crear su propio atoi()?
  • Programa para consultar año bisiesto en lenguaje C.
  • ¿Cómo usar la estructura del puntero de función en lenguaje c?
  • Cree un sistema de gestión de estudiantes en C.
  • Cree un sistema de gestión de empleados en C.
  • Las 11 preguntas principales de la entrevista de relleno de estructura en C
  • Manejo de archivos en C.