• Jueves 28 de Marzo de 2024, 13:11

Autor Tema:  Conversor Binario Decimal  (Leído 1852 veces)

pexopa

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Conversor Binario Decimal
« en: Lunes 18 de Diciembre de 2006, 17:18 »
0
hola sabeis como se hace un conversor de binario a decimal(y viceversa) sin usar funciones como val,copy,etc?
muchas gracias

-DriverOp-

  • Miembro activo
  • **
  • Mensajes: 81
    • Ver Perfil
Re: Conversor Binario Decimal
« Respuesta #1 en: Lunes 18 de Diciembre de 2006, 22:39 »
0
Aja, sí, se puede hacer pero ¿en qué formato está almacenado el número binario?, ¿es un string?. Porque no es lo mismo el 11001 (19) leído en binario que la cadena '11001'. Si es el primer caso no necesitas programar ninguna conversión, con hacer un Writeln de la variable que lo contiene ya está. En el segundo caso sí hay que programar. Me parece que hablas del segundo caso.

-DriverOp-

  • Miembro activo
  • **
  • Mensajes: 81
    • Ver Perfil
Re: Conversor Binario Decimal
« Respuesta #2 en: Lunes 18 de Diciembre de 2006, 23:15 »
0
Como sea, aquí está el código para binarios ingresados como strings:

Código: Text
  1. uses crt;
  2. var
  3.   Decimal, I: Word;
  4.   S: string;
  5.  
  6. function MulPos(p: Word):Word;
  7. var
  8.   Mul, J: word;
  9. begin
  10.   Mul:=1;
  11.   if p>1 then
  12.     begin
  13.       for j:=1 to (p-1) do Mul:=Mul*2;
  14.       MulPos:=Mul;
  15.     end
  16.   else MulPos:=1;
  17. end;
  18.  
  19. begin
  20. Decimal:=0;
  21. Write('Ingrese un número en binario: ');
  22. ReadLn(S);
  23.  
  24. for i:=1 to Length(S) do
  25. begin
  26.   if S[i] = '1' then
  27.       Decimal:=Decimal+MulPos(i);
  28. end;
  29. WriteLn(Decimal);
  30. readkey;
  31.  
  32. end.
  33.  
  34.