elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema cambio de hexadecimal y octal a decimal
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema cambio de hexadecimal y octal a decimal  (Leído 3,977 veces)
Turakam

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Problema cambio de hexadecimal y octal a decimal
« en: 13 Noviembre 2014, 12:01 pm »

Buenas, tengo un problema que no se resolver. Tengo que leer de una entrada estandar y convertir los numeros hexadecimal y octal que encuentre a decimal, pero volviendo a ponerlos en la entrada.

Alguien me puede ayudar?

THX!


En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Problema cambio de hexadecimal y octal a decimal
« Respuesta #1 en: 13 Noviembre 2014, 12:12 pm »

¿y que tienes hecho hasta el momento?


En línea

Turakam

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Problema cambio de hexadecimal y octal a decimal
« Respuesta #2 en: 13 Noviembre 2014, 12:24 pm »

No tengo practicamente nada, o se como plantearlo siquiera...
En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Problema cambio de hexadecimal y octal a decimal
« Respuesta #3 en: 13 Noviembre 2014, 12:55 pm »

sacado de la hoja de referencia de la función printf

d or iSigned decimal integer392
uUnsigned decimal integer7235
oUnsigned octal610
xUnsigned hexadecimal integer7fa
XUnsigned hexadecimal integer (uppercase)7FA
fDecimal floating point, lowercase392.65
FDecimal floating point, uppercase392.65
eScientific notation (mantissa/exponent), lowercase3.9265e+2
EScientific notation (mantissa/exponent), uppercase3.9265E+2
gUse the shortest representation: %e or %f392.65
GUse the shortest representation: %E or %F392.65
aHexadecimal floating point, lowercase-0xc.90fep-2
AHexadecimal floating point, uppercase-0XC.90FEP-2
cCharactera
sString of characterssample
pPointer addressb8000000
%A % followed by another % character will write a single % to the stream.%

Con esto deberías ser capaz de configurar el printf para que saque la información como tu quieres.

Un saludo
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Problema cambio de hexadecimal y octal a decimal
« Respuesta #4 en: 13 Noviembre 2014, 16:42 pm »

Tengo que leer de una entrada estandar y convertir los numeros hexadecimal y octal que encuentre a decimal, pero volviendo a ponerlos en la entrada.
Deberías colocar el enunciado completo del ejercicio así como indicar que partes puedes realizar y en cuales tienes dificultades siempre entendiendo que las reglas de los foros prohíben hacer tareas ajenas.

La obtención de los números en base 8 o 16 la puedes realizar utilizando la función scanf con los especificadores de formato que ya indico eferion o bien la lectura debe ser de forma manual, eso lo debes aclarar tu.

En cuanto a regresarlos a la entrada estándar supongo es un error y la intención es enviarlos a la salida estándar, para ello basta con la función printf y el especificador "%d".

En todo caso ejemplos de todo ello hay a montones en la base de datos de los foros, solo es cuestión de utilizar el motor de búsqueda.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Turakam

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Problema cambio de hexadecimal y octal a decimal
« Respuesta #5 en: 13 Noviembre 2014, 19:23 pm »

El enunciado es este: Escribe un programa que lea de la entrada estándar y convierta a decimal todos los números que encuentra, extrayéndolos en la salida estándar. Si encuentra un número en octal o en hexadecimal, debe ser convertido. Del mismo modo, detectará que los números contienen decimales y los mostrará de forma correcta

Y este es el codigo que tengo hasta ahora:

Código
  1. #include <stdio.h>
  2. #include <ctype.h>
  3.  
  4. main ()
  5. {
  6. int c,i;
  7. int hexa_n, octal_n;
  8. char str[100];
  9.  
  10. printf ("Escribe un texto incluyendo numeros en hexadecimal y octal: \n");
  11. scanf ("%s",&str);
  12. for (i = 0; i <= strlen(str); i++)
  13. if (isxdigit(str[i]) != 0);
  14. {
  15. hexa_n = strtol(str,NULL,16);
  16. printf ("El numero hexadecimal %X es %d\n",hexa_n,hexa_n);
  17. }
  18. }

El problema es que en este código solo me lee desde la primera posición y necesito que si por ejemplo tengo "Hola mundo A2", me tiene que leer el A2 y pasarmelo a decimal, pero con mi codigo me leeria la H y no funcionaria, una ayudita!!!
« Última modificación: 13 Noviembre 2014, 20:52 pm por Eternal Idol » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines