Autor Beitrag
Phantom1
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 390



BeitragVerfasst: Mo 25.04.05 13:42 
Zahlensysteme umrechnen
Ich hab noch einen anderen Code, mit dem von jeder Basis (2 bis 36) in die andere Rechnen kann:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
function BaseToBase(Value: string; StartBase, EndBase: byte): string;
const Digits = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var i: Integer; dez, j: Int64;
begin
  Result:='';
  if (StartBase<2or (StartBase>36or
     (EndBase<2or (EndBase>36then Exit;
  for i:=1 to Length(Value) do begin
    j:=Pos(Value[i], Digits);
    if (j>StartBase) or (j=0then Exit;
  end;
  j:=1;
  dez:=0;
  for i:=Length(Value) downto 1 do begin
    dez:=dez + (Pos(Value[i], Digits)-1) * j;
    j:=j*StartBase;
  end;
  repeat
    Result:=Digits[dez mod EndBase+1] + Result;
    dez:=dez div EndBase;
  until dez=0;
end;


Anwendungsbeispiele
ausblenden Delphi-Quelltext
1:
2:
3:
ShowMessage(BaseToBase('1001011'210)); // Bin to Dez
ShowMessage(BaseToBase('FFFF'168)); // Hex to Oct
ShowMessage(BaseToBase('12345'1016)); // Dez to Hex


Mfg
Phantom1

Moderiert von user profile iconjasocul: Beitrag geprüft am 14.06.2006
Moderiert von user profile icondelfiphan: Titel geändert.