AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Kleiner Zahlenkonvertierer
Thema durchsuchen
Ansicht
Themen-Optionen

Kleiner Zahlenkonvertierer

Ein Thema von Die Muhkuh · begonnen am 3. Jan 2008 · letzter Beitrag vom 12. Jan 2008
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von rawsoul
rawsoul

Registriert seit: 29. Okt 2006
Ort: Düsseldorf
249 Beiträge
 
Delphi 2005 Personal
 
#1

Re: Kleiner Zahlenkonvertierer

  Alt 11. Jan 2008, 20:05
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:
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;
Diese Funktion arbeitet vom Binärsystem bis zum System der Basis 36

//Edit: Whoopsies, hätte vielleicht vorher mal nachdenken sollen. Diese Funktion rechnet nur Zahlen aus dem Dezimalsystem in andere um, sonst nichts. 'schuldige
Frank Dumont
  Mit Zitat antworten Zitat
Phantom1

Registriert seit: 20. Jun 2003
282 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Kleiner Zahlenkonvertierer

  Alt 12. Jan 2008, 09:25
Zitat von rawsoul:
Diese Funktion arbeitet vom Binärsystem bis zum System der Basis 36

//Edit: Whoopsies, hätte vielleicht vorher mal nachdenken sollen. Diese Funktion rechnet nur Zahlen aus dem Dezimalsystem in andere um, sonst nichts. 'schuldige
Wenn man alles in einer einzigen function haben will, müsste es in etwa so hier aussehen:
Delphi-Quellcode:
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;
Damit kann man von 2er bis zum 36er System alles umrechnen lassen.
  Mit Zitat antworten Zitat
Benutzerbild von rawsoul
rawsoul

Registriert seit: 29. Okt 2006
Ort: Düsseldorf
249 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Kleiner Zahlenkonvertierer

  Alt 12. Jan 2008, 15:12
[ot]Danke, die werd ich mal durch meine alte in der Codeschnipsel.pas ersetzen [/ot]
Frank Dumont
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:58 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 by Thomas Breitkreuz