Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Zahl-Umrechnungen Bin, Oct, Dec, Hex (https://www.delphipraxis.net/36095-zahl-umrechnungen-bin-oct-dec-hex.html)

Morlon 15. Dez 2004 19:56


Zahl-Umrechnungen Bin, Oct, Dec, Hex
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
ich hab den Rechner bereits im Object-Pascal / Delphi-Language-Forum veröffentlicht und mit eurer Hilfe einige Dinge verbessert.
Das Programm kann Binär, Oktal, Dezimal und HexaDezimal hin und her rechnen wie man mag. Ich habs mit einigen Kommentaren versehen und die einzelnen Schritte, die dafür gemacht werden genau beschrieben.

Viel Spaß damit
Elmar

DP-Maintenance 27. Dez 2004 18:22

DP-Maintenance
 
Dieses Thema wurde von "Chakotay1308" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Open-Source" verschoben.
Ist eher ein OpenSource-Programm, als ein Beitrag für die Code-Library.

Neutral General 27. Dez 2004 18:27

Re: Zahl-Umrechnungen Bin, Oct, Dec, Hex
 
Könntest du bitte auch direkt die exe mitliefern, weil ich z.B das Projekt mit Delphi 3 nicht öffnen kann :wink:

arbu man 27. Dez 2004 19:10

Re: Zahl-Umrechnungen Bin, Oct, Dec, Hex
 
Liste der Anhänge anzeigen (Anzahl: 1)
Guck dir das mal an :coder:

Vieleich nützt es dir was is auch en ZahlenWandler von Dezimal auf alles

Morlon 31. Dez 2004 01:38

Re: Zahl-Umrechnungen Bin, Oct, Dec, Hex
 
WAAAHHH so einfach?? und dafür mach ich mir so nen stress? :?

aber danke dir für den quelltext, wirklich gut :)

Grüße

KLS 31. Dez 2004 14:16

Re: Zahl-Umrechnungen Bin, Oct, Dec, Hex
 
hmm, beide rechener haben probleme bei negativen zahlen :(

ansonsten sind die progs durchaus nutzbar :)

MaBuSE 3. Jan 2005 08:39

Re: Zahl-Umrechnungen Bin, Oct, Dec, Hex
 
Zitat:

Zitat von arbu man
Guck dir das mal an :coder:
Vieleich nützt es dir was is auch en ZahlenWandler von Dezimal auf alles

Hier kann man sich auch eine Lösung anschauen, die von allem nach allem umwandelt:
http://www.delphipraxis.net/internal...=289485#289485
(Weiter oben wird auch nochmal die Umwandlung in belibige Zahlensysteme erklärt)

In der Funktion x2y wandele ich erst die Quellbais nach dec (Basis 10) und danach in die Zielbasis.
Meine dec2alles macht fast das selbe wie Deine.
Du macht ein
Delphi-Quellcode:
Result := Zifferberechnung + Result;
ich mache ein
Delphi-Quellcode:
Result := Result + Zifferberechnung
Deine Methode ist etwas effizienter, da Du nicht erst die 1. Ziffer bestimmen musst und auch auf das Potenzieren verzichten kannst. ;-)
Aber viele Wegen führen nach Rom ;-)
Delphi-Quellcode:
  // Umrechnen dec nach BaseY
  Result := '';
  // erste Ziffer bestimmen
  i := 0;
  while Base10Zahl >= IntPower(BaseY, i) do
  begin
    inc(i);
  end;
  // die eigentliche Umwandlung
  while i>0 do
  begin
    Result := Result + Ziffern[Base10Zahl div Round(IntPower(BaseY, i-1))+1];
    Base10zahl := Base10Zahl mod Round(IntPower(BaseY, i-1));
    dec(i);
  end;

MaBuSE 3. Jan 2005 08:46

Re: Zahl-Umrechnungen Bin, Oct, Dec, Hex
 
Zitat:

Zitat von KLS
hmm, beide rechener haben probleme bei negativen zahlen :(
ansonsten sind die progs durchaus nutzbar :)

Dann denk Dir doch einfach ein - vor die Zahl :mrgreen:

Code:
-5 (dec) = -1001 (bin)
Delphi-Quellcode:
if abs(QuellBasis) <> QuellBasis then begin Neg := True; QuellBasis := QuellBasis * -1; end;
ZielBasis := Umwandeln(QuellBais);
if Neg then ZielBasis := ZielBais * -1;

thepaul 3. Jan 2005 14:25

Re: Zahl-Umrechnungen Bin, Oct, Dec, Hex
 
bei binär is das nich so einfach. da muss dann das MSB (most significant bit) den wert 1 haben und die anderen entsprechend geändert weredn!

MaBuSE 3. Jan 2005 14:49

Re: Zahl-Umrechnungen Bin, Oct, Dec, Hex
 
Zitat:

Zitat von thepaul
bei binär is das nich so einfach. da muss dann das MSB (most significant bit) den wert 1 haben und die anderen entsprechend geändert weredn!

Das ist nicht ganz richtig.

Auch bei Binär kann man (in der Mathematik) mit dem "-" Zeichen arbeiten.

In der EDV werden die Binärzahlen aber in dem von Dir angegebenen Format abgelegt. Das hat aber nichts damit zu tun, das im Binärsystem kein Minus möglich ist, sondern es relativ einfach nach Deiner Methode zu handeln ist.

Im Dualsystem kann eine Subtraktion als eine Addition mit dem 2er Kompliment dargestellt werden.
Eine Negative Zahl wird deswegen in der EDV gerne als Zweierkompliment dargestellt.
Das funktioniert sehr gut, da man in der Regel genau weiß wie viel Bits eine Zahl groß werden darf.

Was machst Du wenn Du nicht weißt, wie viele Bits Dein Wert hat?
Sprich wir arbeiten mit Binärzahlen, die sagen wir mal bis zum Bereich 2^10.000.000 groß werden können.
Wenn Du nun den Wert -1 ablegen willst, kann man natürlich auch 10 Mio. Einsen davor schreiben :mrgreen:

Ich hatte irgendwann mal eine Funktionssammlung in TP6 die mit sehr großen Binärzahlen rechnen kann. dort wurde sich nur das Vorzeichen gemerkt. Beim Rechnen wurde dann das 2er Komplimentgebildet (Max(AnzBits(Zahl1), AnzBits(Zahl2))+1 und danach bei einer negativen Zahl wieder zurückgewandelt.
Das klappte sehr gut.

Anmerkung:
Kompliment ist das Negativ der Zahl: z.B. 00001001 -> 11110110
2er Kompliment ist das Kompliment der Zahl + 1 z.B. -> 00001001 -> 11110111


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 Uhr.
Seite 1 von 2  1 2      

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