/*
Nombre del proyecto: ASCIITable
Nombre de archivo: main.c
Autor: Corrales Quintero Erick Roberto
Correo: [email protected]
Fecha: 25/10/2023
Curso Lenguajes de Interfaz, TECNM Campus ITT
Objetivo: Este programa permite imprimir en pantalla los valores para
cada caracter, en decimal, octal, hexadecimal y binario
Historial de revisiones:
25/10/2023 Corrales Quintero Erick Roberto - Creado
*/
#include <stdio.h>
#include "pico/stdlib.h"
//Función para imprimir los caracteres
void imprimir_caracteres()
{
int i;
char hex[2];
char oct[3];
char bin[7];
for(i=33;i<127;i++)
{
hexadecimal(i, hex);
octal(i, oct);
binario(i, bin);
printf("%c, dec: %d, hex: %s, octal: %s, binario: %s\n", i, i, hex, oct, bin);
}
}
//Función para convertir a hexadecimal los números
void hexadecimal(int numero, char hexadecimal_numero[9])
{
int i, residuo;
for (i = 1; i >= 0; i--)
{
residuo = numero % 16;
if (residuo < 10) {
hexadecimal_numero[i] = '0' + residuo;
}
else {
hexadecimal_numero[i] = 'A' + (residuo - 10);
}
numero /= 16;
}
hexadecimal_numero[2] = '\0'; // Termina la cadena
}
//Función para convertir a octal los números
void octal(int numero, char numero_octal[3])
{
int i, residuo;
for (i = 2; i >= 0; i--) {
residuo = numero % 8;
numero_octal[i] = '0' + residuo;
numero /= 8;
}
numero_octal[3] = '\0'; // Termina la cadena
}
//Función para convertir los números a binario
void binario(int numero, char numero_binario[7])
{
int i, bit_;
for (i = 6; i >= 0; i--) {
bit_ = (numero >> i) & 1;
numero_binario[6 - i] = '0' + bit_;
}
numero_binario[7] = '\0'; // Termina la cadena
}
//Función principal
int main()
{
stdio_init_all();
printf("ASCII Table ~ Character Map\n");
imprimir_caracteres(); //Llamada a la función para imprimir los caracteres
return 0;
}