• Martes 7 de Mayo de 2024, 22:54

Autor Tema:  CONVERSIONES NUMERICAS  (Leído 8691 veces)

Carlos Corona

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
CONVERSIONES NUMERICAS
« en: Domingo 23 de Noviembre de 2003, 01:19 »
0
Disculpen las molestias, sigo aqui molestando a los usuarios asiduos de este foro con dudas quizás ya obsoletas... bueno, solo quisiera saber si hay algún método que me ayude a transformar un número decimal a hexadecimal y a octa, siendo que el número está en una variable de 16 bits... y no sé que más datos se necesiten...

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: CONVERSIONES NUMERICAS
« Respuesta #1 en: Lunes 24 de Noviembre de 2003, 04:22 »
0
Aque te refieres???

NO SE SI ES EXACTAMENTE ESTA TU DUDA :


en principio yo me rayaba con los numeros en esamblador eso de los binarios los decimales hexadecimales y octales, yo queria trabajar solo en decimal; despues comprendi muchas cosas y al final lo mas importante y basico "todo esta en binario" claro asi lo maneja el procesador con estados logicos "1" y "0" PERO y QUE!! pues si tenemos en un regisrtro o memoria el valor "00001010"b tambien se "tiene" en ese mismo registro "0A"h que es igual a "010"d; entoces no importa porque de todos modos es el mismo valor sea en binario hexa o decimal; en mi programa(codigo fuente) puedo trabajar todo en decimal y al ponerlo en TurboDebug todo estara en sus correspondientes hexa, pero el micro todo estara en binario;


no se si este es el caso pero podria dar una pauta Ó una aclaracion seria buena.

Carlos Corona

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: CONVERSIONES NUMERICAS
« Respuesta #2 en: Martes 25 de Noviembre de 2003, 02:09 »
0
No me quedó tan claro.. es verdad que el procesador trabaja con números en binario, pero si lo que quiero es mover un número de una base a otra... que es lo que debo hacer? porque, por decir,entre Hex, Oct, o Binario no hay mucho rollo, son múltiplos y listo, pero en cuanto a la base 10... es otro cantar... como lo puedo trabajar que teniendo un dato en dec, lo escriba como hex?

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: CONVERSIONES NUMERICAS
« Respuesta #3 en: Miércoles 26 de Noviembre de 2003, 20:00 »
0
dices que teniendo un dato en decimal(en tu programa) lo muestre en hexadecimal????????????????????

Carlos Corona

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: CONVERSIONES NUMERICAS
« Respuesta #4 en: Jueves 27 de Noviembre de 2003, 04:56 »
0
No!, al contrario... si quiero leer un dato, como hago para manejarlo como decimal? para una conversión a binario por ejemplo.

Es decir, yo estoy metiendo un dato del teclado, se supone que checo que no sean letras ni nada por el estilo, lo que en teoría es un dato en decimal, pero para mostrarlo en binario como hago? porque lo que hacía era esto:

Metía en Ax el dato
Corrimiento a la Izquierda 1 vez de Ah
Si hay Carry, Imprime un 1
Si no hay Carry, Imprime un 0
Loop al Corrimiento de Ah, 8 Veces
Y lo mismo para Al

Pero eso me proporciona el dato en BCD, y yo lo quiero en Binario Puro, así que lo que hice fueron divisiones...

Pero obtube el mísmo número solo que a la inversa (si tenía "0001", me daba "1000")

Quiero saber como se puede hacer entonces....

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: CONVERSIONES NUMERICAS
« Respuesta #5 en: Viernes 28 de Noviembre de 2003, 16:18 »
0
Aver:

primero lees una del teclado un numero(en principio de un digito 0-9) y despues quieres mostrarlo por pantalla en su efroma binaria,¿eso es correcto?

pues primero lo mas recomendable es convertir ese dato leido(de un digito) de ascii a numerico restandole 48d o 30h;
depues es ya esta listo para ser trabajado;

(si el dato ya esta en AL):

;;*******************************

sub al,48;conversion de ascii ascii a numer
(el resto me da flojera asi que aui tengo el progra de un compañero "GORDO"; y lo adjunto; el progrma lee un numero de 0-9 osea un digito y lo meuastra en binario)
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: CONVERSIONES NUMERICAS
« Respuesta #6 en: Viernes 28 de Noviembre de 2003, 16:21 »
0
ese NO!!! es

ESTE SI
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

Carlos Corona

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: CONVERSIONES NUMERICAS
« Respuesta #7 en: Sábado 29 de Noviembre de 2003, 03:14 »
0
Pues muchas gracias por el código, voy a darle una buena revisada

Lo que si puedo decir, es que hice algunas pruebas, sobre todo para convertir números de 4 dígitos, obtuve que si divido el número entre 15, y el cosiente más uno se multiplica por 6 y ese resultado se resta del número original, puedes obtener el valor de un número de 2 dígitos metido en decimal, en hexa... pero si aumento la cantidad de dígitos, deja de funcionar el código, pues convierte, digamos, literalmente.

Esto es, que si meto desde teclado 99, y aplico lo anterior, obtengo: 99=63, que es en realidad 99 en hexa... pero si pongo 100... entonces obtengo A0, pues A=10, unido con 0 = 100.... jejeje...

Que me recomiendan para este caso?

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: CONVERSIONES NUMERICAS
« Respuesta #8 en: Domingo 30 de Noviembre de 2003, 04:01 »
0
No entendi

Ericka

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: CONVERSIONES NUMERICAS
« Respuesta #9 en: Jueves 13 de Mayo de 2004, 00:20 »
0
Cita de: "Super_G"
Aver:

primero lees una del teclado un numero(en principio de un digito 0-9) y despues quieres mostrarlo por pantalla en su efroma binaria,¿eso es correcto?

pues primero lo mas recomendable es convertir ese dato leido(de un digito) de ascii a numerico restandole 48d o 30h;
depues es ya esta listo para ser trabajado;

(si el dato ya esta en AL):

;;*******************************

sub al,48;conversion de ascii ascii a numer
(el resto me da flojera asi que aui tengo el progra de un compañero "GORDO"; y lo adjunto; el progrma lee un numero de 0-9 osea un digito y lo meuastra en binario)
 :) Hola como estas... este mensaje primeramente es para felicitarte por ayudarnos con tantas dudas... y en segunda es ver si me puedes decir que emulador usas para assembler, es que en mas de algun mensaje lei que usas un emulador, yo tengo el emu8086 pero al tratar de compialr un porgrama que tu hiciste en otro emulador obviamente no me compila... :gracias: y  :suerte: en todo!

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: CONVERSIONES NUMERICAS
« Respuesta #10 en: Martes 18 de Mayo de 2004, 02:07 »
0
Bueno primero "se hace lo que se puede" y "no hay de queso no mas de papa".
y yo no utilizo un emulador sino un compilador que es el TASM de Borland, bajo el DOS de win98. ver 2.0(creo) tambien con el TASM del BorlandC++ 3.11, y alguna ves con el MASM32 de Microsoft.

deldar

  • Miembro activo
  • **
  • Mensajes: 93
    • Ver Perfil
Re: CONVERSIONES NUMERICAS
« Respuesta #11 en: Martes 18 de Mayo de 2004, 17:25 »
0
Vamos a ver  si esta es una solucion:

1.- Decimal (suscribo lo dicho por Super_G).

2.- Hexadecimal : Supongo el número cargado ya (evidentemente en BCD) el paso no es mas que una agrupacion de bits p.ej:
 00110000b = 48 d = 30h --> 0011 (3)   0000 (0)
Con lo que nos bastaría desplazar el registro pasando el desbordamiento a otro cuatro veces. En este segundo tendremos el primer dígito hexadecimal , lo mostramos por pantalla, inicializamos y repetimos la operación hasta mostrar todos los dígitos.

3.- Octal: Igual que el Hexadecimal pero agrupamos en bloques de tres en lugar de bloques de cuatro.

Un Saludo  B)
Quien de verdad sabe de qué habla, no encuentra razones para levantar la voz.