folgende funktion wandelt eine zahl aus einem beliebigen System in eine dezimalzahl um
Delphi-Quellcode:
function xToDec(Nb: string; sys: byte): integer;
const
ch = '0123456789ABCDEF'
var
i: integer;
begin
result := 0;
if sys in [2..16] then
begin
for i := 1 to length(Nb) do
result := result*sys + pos(upCase(Nb[i]), ch) - 1;
end;
end;
und diese macht genau das gegenteil:
Delphi-Quellcode:
function DecToX(Nb: integer; sys: byte): string;
const
ch = '0123456789ABCDEF';
begin
result := '';
if sys in [2..16] then
while Nb > 0 do
begin
result := ch[Nb mod sys+1] + result;
Nb := Nb div sys;
end;
end;
Man könnte auch die ch-Konstante erweitern, dadurch wären dann auch riesige zahlensysteme möglich
[edit=Matze]Code formatiert. Mfg, Matze[/edit]
[edit=Chakotay1308]Titel angepasst. Mfg, Chakotay1308[/edit]