Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi ZahlensystemConverter (https://www.delphipraxis.net/109010-zahlensystemconverter.html)

Christian18 22. Feb 2008 18:56


ZahlensystemConverter
 
Hallo,

ich will mir eine Klasse schreiben, die folgende Dinge für mich tut.

Delphi-Quellcode:
type
  TNumberConvert = class
    function HexToDez(Value : String) : String;
    function HexToOkt(Value : String) : String;
    function HexToBin(Value : String) : String;
    function DezToHex(Value : String) : String;
    function DezToOkt(Value : String) : String;
    function DezToBin(Value : String) : String;
    function OktToHex(Value : String) : String;
    function OktToDez(Value : String) : String;
    function OktToBin(Value : String) : String;
    function BinToHex(Value : String) : String;
    function BinToDez(Value : String) : String;
    function BinToOkt(Value : String) : String;
  private

  public

  end;
String ist erstmal nur ein Platzhalter. Also bitte nicht wundern.

muss ich alle funktionen selber schreiben oder kann ich da auch schon auf was anderes zurückgreifen? Eigentlich ändert sich ja immer nur die basis. gibt es vieleicht eine Funktion in delphi der ich sowas übergebe?

PS: Bitte nicht fragen, wofür man sowas braucht. Ich weiß es selber nicht genau, da das alles ein Windows Taschenrechner kann.

MFG Christian18

Helmi 22. Feb 2008 19:10

Re: ZahlensystemConverter
 
Hallo,

vielleicht wäre Power was für dich

jmit 22. Feb 2008 19:14

Re: ZahlensystemConverter
 
Zitat:

Zitat von Helmi
Hallo,

vielleicht wäre Power was für dich

Kannst Du bitte etwas genauer erklären was Power ist?

Gruß Jörg

r2c2 22. Feb 2008 19:15

Re: ZahlensystemConverter
 
http://www.delphi-treff.de/no_cache/...D=zahlensystem

Die Umrechnung ins Dezimalsystem ist noch einfacher:
SUMME(Wert*Basis^Stelle) // Bäh! Irgendwie fehlen hier LaTeX-Tags...

mfg

Christian

P.S.: Power ist ne Funktion zum Potenzieren... Siehe Delphi-Hilfe...

Phantom1 22. Feb 2008 20:32

Re: ZahlensystemConverter
 
Noch einfacher gehts mit dieser function, die wandelt alles (basis 2 bis 36) von einer beliebigen basis in jede beliebige basis:
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;


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz