Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi brauche schnellstmöglich hilfe mit zahlensystem (https://www.delphipraxis.net/18505-brauche-schnellstmoeglich-hilfe-mit-zahlensystem.html)

whopper 19. Mär 2004 20:37


brauche schnellstmöglich hilfe mit zahlensystem
 
also habe schon von ein paar schlauen köpfen hier im forum den folgenden Quelltext gekriegt um oktal in dezimalzahlen umzuwandeln.

Delphi-Quellcode:
begin
        iRes := 0;
        for iFor := 1 to Length(edit1.text) do
        begin
        iRes := iRes * 8 +StrToInt(Copy(edit1.text, iFor, 1));
        end;
  edit2.text := inttostr(iRes);
        end;
jetzt brauch ich den ganz schnell so erweitert, dass er hexadezimalzahlen umwandelt in dezimal.
wäre echt toll wenn das einer schnell hinkriegt!

vielen dank

[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]

Christian Seehase 19. Mär 2004 20:47

Re: brauche schnellstmöglich hilfe mit zahlensystem
 
Moin Whopper,

erste Möglichkeit:
Du tauscht die 8 durch 16, eben die Basis des Zahlensystemes,

Code:
begin
  iRes := 0;
  for iFor := 1 to Length(edit1.text) do begin
    iRes := iRes * [color=red]16[/color] +StrToInt(Copy(edit1.text, iFor, 1));
  end;
  edit2.text := inttostr(iRes);
end;
oder Du verwendest einfach die vorhandenen Funktionen:

Delphi-Quellcode:
Edit2.Text := IntToStr(StrToInt('$'+Edit1.Text));

whopper 19. Mär 2004 20:50

Re: brauche schnellstmöglich hilfe mit zahlensystem
 
ja klar das mit der 16 is logisch aber dann ist da noch das problem mit den buchstaben A - F! damit kann der ja in der function nix anfangen

Christian Seehase 19. Mär 2004 20:55

Re: brauche schnellstmöglich hilfe mit zahlensystem
 
Moin Whooper,

Zitat:

Zitat von whopper
damit kann der ja in der function nix anfangen

stimmt, ich hatte da was vergessen: :?

Delphi-Quellcode:
begin
  iRes := 0;
  for iFor := 1 to Length(edit1.text) do begin
    iRes := iRes * 16 +StrToInt('$'+Edit1.text[iFor]);
  end;
  edit2.text := inttostr(iRes);
end;
Mit hexadezimalen Ziffern kann Delphi nämlich etwas anfangen, wenn Du der Funktion mit dem Prefix $ mitteilst, dass es die Zahl als hexadezimal ansehen soll.
Siehe auch die zweite Lösung. ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:49 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