![]() |
ZahlensystemConverter
Hallo,
ich will mir eine Klasse schreiben, die folgende Dinge für mich tut.
Delphi-Quellcode:
String ist erstmal nur ein Platzhalter. Also bitte nicht wundern.
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; 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 |
Re: ZahlensystemConverter
Hallo,
vielleicht wäre Power was für dich |
Re: ZahlensystemConverter
Zitat:
Gruß Jörg |
Re: ZahlensystemConverter
![]() 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... |
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 13:40 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