![]() |
Re: Kleiner Zahlenkonvertierer
Nettes Programm, hat allerdings für mich keinen Nutzen.
Wieso nicht noch weitere abstrakte Zahlensystem einbauen? Mal was ganz altes aus dem Infounterricht:
Delphi-Quellcode:
Diese Funktion arbeitet vom Binärsystem bis zum System der Basis 36 :lol:
function xtoy(dez,base:integer):string;
const num:array [0..35] of char = ('0','1','2','3','4','5','6','7','8','9', 'A','B','C','D','E','F','G','H','I','J', 'K','L','M','N','O','P','Q','R','S','T', 'U','V','W','X','Y','Z'); begin result:=''; if (base>36) or (base<2) then begin result:='Keine gültige Basis!'; exit; end; repeat result:=num[dez mod base]+result; dez:=dez div base; until dez=0; end; //Edit: Whoopsies, hätte vielleicht vorher mal nachdenken sollen. Diese Funktion rechnet nur Zahlen aus dem Dezimalsystem in andere um, sonst nichts. 'schuldige :wall: |
Re: Kleiner Zahlenkonvertierer
Zitat:
Delphi-Quellcode:
Damit kann man von 2er bis zum 36er System alles umrechnen lassen.
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; |
Re: Kleiner Zahlenkonvertierer
[ot]Danke, die werd ich mal durch meine alte in der Codeschnipsel.pas ersetzen :P[/ot]
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz