Cambio de bases
Publicado por monik (7 intervenciones) el 06/02/2007 22:39:19
Necesito pasar un numero de base menor a 10 a otra base menor a diez en un programa pascal alguien me puede ayudar porfa lo necesito con urgencia
Valora esta pregunta


0
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
var
b1, b2: LongInt;
Num, R: String;
procedure CambiarBase (n: String; b1,b2: integer; var R: string);
var
i,m,t: LongInt;
begin
//Cambiar la base del número a base 10
m := 0;
for i := 1 to Length(n) do
begin
if (n[i] in ['0'..'9'])
then t := ord(n[i]) - 48
else t := ord(n[i]) - 55;
m := m * b1 + t
end;
//Cambiar la base 10 del número a la nueva base
if m <> 0
then r := ''
else r := '0';
while (m > 0) do
begin
t := (m mod b2);
if t > 9
then r := char(t + 55) + r
else r := char(t + 48) + r;
m := m div b2;
end;
if length(r) > 8 then r := 'ERROR'
end;
begin
try
Num := '254'; //Número a convertir
b1 := 10; //Base del número
for b2 := 16 downto 2 do //Nuevas bases
begin
CambiarBase (Num, b1, b2, R);
writeln ('El numero ',Num, ' de base ', b1, ' es ' ,r:8, ' en base ', b2);
end;
ReadLn
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message)
end
end.