Autor
|
Tema: convertir de decimal a hexadecimal (Leído 42,729 veces)
|
chaarlyyyy
Desconectado
Mensajes: 20
|
Lo que me sucede es q al imprimir me aparecen los numeros y no las letra EJ:si pongo el 6719 debiera quedar en hexadecimal 1A3F y en ves de eso me aparece 1 10 3 15 es decir el numero correspondiente a la letra intente varias veces pero siempre me da lo mismo aki esta el codigo q tngo
#include<stdio.h> #include<conio.h>
void main() { int i,num,n,dividendo,cociente,resto,a[10]; clrscr(); printf("Ingrese numero: "); scanf("%d",& num); n=0; for(dividendo = num; dividendo > 0;n++) { cociente=dividendo/16; resto=dividendo%16; a[n]=resto; dividendo=cociente; } printf("El numero decimal %d equivale en Hexadecimal a: ", num); for( i=n-1; i>=0; i--) { if(a=='10') { a='A'; printf("%c",a); } if(a=='11') { a='B'; printf("%c",a); } if(a=='12') { a='C'; printf("%c",a); } if(a=='13') { a='D'; printf("%c",a); } if(a=='14') { a='E'; printf("%c",a); } if(a=='15') { a='F'; printf("%c",a); } else { printf("%d",a); } } getch(); }
|
|
|
En línea
|
|
|
|
Akai
Desconectado
Mensajes: 823
|
El problema lo tienes, en que no puedes guardar un carácter (A,B,C,E,F etc) en un vector de enteros. lo que deberías hacer, es en vez de que a[n] sea una letra, es imprimir esa letra por pantalla en vez de asignarla al vector. ejemplo: if(a[i]== 10)
Ahora algunas cosas relativas al programa, en vez de tantas comprobaciones con if, n o sería mejor usar if, else if, y else? void main es una mala costumbre, main siempre debería retornar algo. int main(){ variables; instrucciones; return 0;}
conio.h no es una librería estandar, para evitar su uso, podrías utilizar otras funciones como getchar, gets etc que si son estándares. Otra función de conio.h, clrscr te puede dar problemas según el sistema operativo donde ejectutes el programa
|
|
« Última modificación: 28 Mayo 2010, 22:43 pm por Akai »
|
En línea
|
|
|
|
danyof
Desconectado
Mensajes: 8
|
Otra opcion, en vez de usar tantos if es crear por ejemplo un vector llamado
letras en donde letras[0]=A, letras[1]=B... asi hasta la F y que si el numero que tienes que mostrar es una letra llame al elemento que sea de ese vector:
Por ejemplo:
Si el numero es 10:
printf(letras[10-10]
si el numero es 13:
printf(letras[13-10]
No se si me explique con suficiente claridad....
Te comento esta alternativa porque me parece mucho mas comodo que usar tanto if... ademas, que antes que usar tanto if casi seria mejor usar un switch case...
|
|
|
En línea
|
|
|
|
Niko^
|
ufff pero no es mas facil pasarlo a hexadecimal directamente ? algo asi: #include <stdio.h> #include <stdlib.h> int main() { int decimal; printf("introduzca un numero decimal: "); printf("el numero en hexadecimal es: %x\n", decimal ); }
pero boe si te queres complicar lo estas haciendo bien por lo visto coincido con danyof para mi es mejor usar vectores
|
|
|
En línea
|
|
|
|
Akai
Desconectado
Mensajes: 823
|
Niko, todo depende si es el típico ejercicio de cuando empiezas a programar. Está claro, las opciones sobre que tipo de datos imprimes te ayudan, pero si te han pedido lo otro...
|
|
|
En línea
|
|
|
|
danyof
Desconectado
Mensajes: 8
|
Es que en este caso el vector es muy util ya que estas mostrando cosas por pantalla... Los if y los switch vienen bien si en cada caso o en cada condicion tienes que hacer una ristra de tareas: reservar memoria, abrir un archivo, llamar a tal funcion, etc etc... pero para un simple printf mas comodo con vectores
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Funcion o programa para convertir de decimal a binario,hexadecimal y octal...
Programación C/C++
|
dnsdirm
|
2
|
10,055
|
24 Mayo 2011, 06:23 am
por dnsdirm
|
|
|
de hexadecimal a decimal
Programación C/C++
|
lokecolinUAM
|
3
|
3,839
|
13 Julio 2012, 18:11 pm
por do-while
|
|
|
Problema decimal - hexadecimal en C
Programación C/C++
|
joraloma
|
1
|
2,917
|
8 Diciembre 2014, 17:06 pm
por engel lex
|
|
|
Como convertir de decimal a hexadecimal en visual studio?
Programación C/C++
|
Juanhex
|
0
|
3,446
|
21 Junio 2018, 00:39 am
por Juanhex
|
|
|
¿Por qué el PC funciona en binario y no en decimal o hexadecimal?
Noticias
|
El_Andaluz
|
0
|
1,770
|
11 Mayo 2020, 02:05 am
por El_Andaluz
|
|