Pascal/Turbo Pascal - HELP!!!!!

 
Vista:

HELP!!!!!

Publicado por Juan (3 intervenciones) el 13/04/2001 06:01:10
Hola!!!!, estoy implementando un pequeño programa para hacer cambios de bases...., dentro de las opciones disponibles que creé hay un rubro para convertir de decimal a Binario para el cual hice lo siguiente:
Res: longint;
result,mult:real;

begin
res:=0;
result:=0;
mult:=1;
write('Escriba un n£mero en decimal: ');
readln (n);
while n >=2 do
begin
res:= n MOD 2;
n:= n DIV 2;
result:= result + (mult*res);
mult:=mult*10
end;
Result:= result + (mult * n);
writeln ('El numero en binario es:', result:0:0);
end.

el realiza el procedimiento, pero me dá problemas con numeros como el 4937, 3333, 4654....., ya que al hacer la conversión a binario se pierde un dígito, por ejemplo el 4937 a binario me dá cpm resultado 4936...
¿ALGUIÉN MA PODRÍA AYUDAR A SOLUCIONAR ESTE PROBLEMA?

gracias!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:HELP!!!!!

Publicado por Diego Romero (282 intervenciones) el 13/04/2001 20:09:25
Cuando la variable n es > 31 resulta en que la variable mult se desborda dando resultados incorrectos, esto tendria una posible solucion si todas las variables fuesen longint pero esto causa el mismo problema cuando n es > 63, por lo tanto creo que tendrias que cambiar de metodo, en vez de usar matematica pura para obtener el exivalente binario deberias usar algun truco a nivel de bits y cadenas de caracteres.
Creo tener algun ejemplo de lo que digo, si lo encuentro lo agregaré aqui.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:HELP!!!!!

Publicado por Marco (1 intervención) el 17/04/2001 21:37:10
Mira Juan, parece que tu pregunta es un poco tonta y quieres que te hagan todo, fíjate bien en tus errores, y verás que fácil, apuesto todo te va a salir muy bien.

Se despide con un beso muy grande loquito...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar