Programa C++ para convertir números decimales a números hexadecimales

Programa C++ para convertir números decimales a números hexadecimales
  • Escriba un programa en C++ para convertir números decimales a hexadecimales.
  • Escriba un programa en C++ para convertir números hexadecimales a decimales.

En estos programas de C++ aprenderemos sobre los fundamentos del sistema numérico decimal y hexadecimal, cómo convertir números decimales a números hexadecimales y viceversa. Dado un número decimal tenemos que convertirlo a número hexadecimal.

Número decimal es un sistema numérico de base 10 que utiliza los dígitos 0 y 9, mientras que Número hexadecimal es un sistema numérico base 16 y utiliza dígitos del 0 al 9 y de la A a la F. Por ejemplo:
2016 en decimal es equivalente a 7E0 en el sistema numérico hexadecimal.

Programa en C++ para convertir números decimales a números hexadecimales

// C++ program to convert decimal numbers to hexadecimal numbers
#include <iostream>
#include <cstring>
using namespace std;
   
#define BASE_16 16
 
int main() {  
    char hexDigits[] = "0123456789ABCDEF"; 
   
    long decimal;  
    char hexadecimal[40];  
    int index, remaindar;  
       
    // Take a Decimal Number as input form user  
    cout << "Enter a Decimal Number\n";  
    cin >> decimal;   
   
    index = 0;
      
    // Convert Decimal Number to Hexadecimal Numbers 
    while(decimal != 0) { 
        remaindar = decimal % BASE_16;  
        hexadecimal[index] = hexDigits[remaindar];  
        decimal /= BASE_16;  
        index++;  
    }  
    hexadecimal[index] = '\0';  
   
    strrev(hexadecimal);  
   
    cout << "Hexadecimal Number : " << hexadecimal;  
   
    return 0;  
}
Salida
Enter a Decimal Number
753
Hexadecimal Number : 2F1
Enter a Decimal Number
101
Hexadecimal Number : 3F2

En el programa anterior, primero declaramos una cadena hexDigits que contiene todos los dígitos del sistema numérico hexadecimal (0-9 y A-F). Como los números hexadecimales contienen alfabetos como dígitos, tenemos que usar una matriz de caracteres para almacenar números hexadecimales.

Programa C++ para convertir número hexadecimal a número decimal

// C++ program to convert decimal numbers to hexadecimal numbers
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std; 
   
int main() {  
    long long decimalNumber=0;
    // Digits of hexadecimal number system. From 0 to 9 and from A to F
    char hexDigits[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8',
      '9', 'A', 'B', 'C', 'D', 'E', 'F'};
    char hexadecimal[30];  
    int i, j, power=0, digit;  
   
    cout << "Enter a Hexadecimal Number\n";  
    cin >> hexadecimal;  
     
    // Converting hexadecimal number to decimal number
    for(i=strlen(hexadecimal)-1; i >= 0; i--) {
        // search currect character in hexDigits array
        for(j=0; j<16; j++){
            if(hexadecimal[i] == hexDigits[j]){
                decimalNumber += j*pow(16, power);
            }
        }
        power++;
    }  
  
    cout <<"Decimal Number : " << decimalNumber;  
   
    return 0;  
}
Salida
Enter a Hexadecimal Number
2F1
Decimal Number : 753