Hola acertijo022.
Número base 10 a base n:
Código Delphi
[-]
function Base10ABaseN(Numero: Longint; const Base: Byte): string;
var
i: Integer;
NumAux: string;
Modulo: Integer;
begin
NumAux:='';
repeat
Modulo := Numero mod Base;
Numero := Numero div Base;
if Modulo > 9 then
NumAux:= NumAux + chr(Modulo + 55)
else
NumAux:= NumAux + chr(Modulo + 48);
until Numero <=0;
for i := Length(NumAux) downto 1 do
Result:= Result + NumAux[i];
end;
Número base N a base 10:
Código Delphi
[-]
function BaseNABase10(Num : string; n : byte): Integer;
const
Car = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; var
i : Byte;
begin
Result:=0;
for i:= 1 to Length(Num) do
Result:= Result * n + Pos(Upcase(Num[i]), Car) - 1;
end;
Llamadas de ejemplo usando el número 2314 con base 32 y 36:
Código Delphi
[-]
ShowMessage(Base10ABaseN(2314, 32)); ShowMessage(Base10ABaseN(2314, 36));
ShowMessage(IntToStr(BaseNABase10('28A', 32))); ShowMessage(IntToStr(BaseNABase10('1SA', 36))); ...
Un saludo.