Zahlensysteme umrechnen
Ich hab noch einen anderen Code, mit dem von jeder Basis (2 bis 36) in die andere Rechnen kann:
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<2) or (StartBase>36) or (EndBase<2) or (EndBase>36) then Exit; for i:=1 to Length(Value) do begin j:=Pos(Value[i], Digits); if (j>StartBase) or (j=0) then 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
Delphi-Quelltext
1: 2: 3:
| ShowMessage(BaseToBase('1001011', 2, 10)); ShowMessage(BaseToBase('FFFF', 16, 8)); ShowMessage(BaseToBase('12345', 10, 16)); |
Mfg
Phantom1
Moderiert von jasocul: Beitrag geprüft am 14.06.2006
Moderiert von delfiphan: Titel geändert.