AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Zahl-Umrechnungen Bin, Oct, Dec, Hex
Thema durchsuchen
Ansicht
Themen-Optionen

Zahl-Umrechnungen Bin, Oct, Dec, Hex

Ein Thema von Morlon · begonnen am 15. Dez 2004 · letzter Beitrag vom 3. Jan 2005
Antwort Antwort
Seite 1 von 2  1 2      
Morlon
Registriert seit: 15. Dez 2004
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
Angehängte Dateien
Dateityp: zip zahlwandler_187.zip (11,3 KB, 299x aufgerufen)
 
27. Dez 2004, 18:22
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.
Benutzerbild von Neutral General
Neutral General

 
Delphi 10.2 Tokyo Professional
 
#3
  Alt 27. Dez 2004, 18:27
Könntest du bitte auch direkt die exe mitliefern, weil ich z.B das Projekt mit Delphi 3 nicht öffnen kann
Michael
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

 
Delphi 7 Professional
 
#4
  Alt 27. Dez 2004, 19:10
Guck dir das mal an

Vieleich nützt es dir was is auch en ZahlenWandler von Dezimal auf alles
Angehängte Dateien
Dateityp: zip wandler_110.zip (216,0 KB, 200x aufgerufen)
Björn
  Mit Zitat antworten Zitat
Morlon

 
Delphi 7 Professional
 
#5
  Alt 31. Dez 2004, 01:38
WAAAHHH so einfach?? und dafür mach ich mir so nen stress?

aber danke dir für den quelltext, wirklich gut

Grüße
  Mit Zitat antworten Zitat
KLS

 
Delphi 7 Enterprise
 
#6
  Alt 31. Dez 2004, 14:16
hmm, beide rechener haben probleme bei negativen zahlen

ansonsten sind die progs durchaus nutzbar
Thomas H.
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

 
Delphi 10 Seattle Enterprise
 
#7
  Alt 3. Jan 2005, 08:39
Zitat von arbu man:
Guck dir das mal an
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 Result := Zifferberechnung + Result; ich mache ein 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;
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

 
Delphi 10 Seattle Enterprise
 
#8
  Alt 3. Jan 2005, 08:46
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

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;
  Mit Zitat antworten Zitat
Benutzerbild von thepaul
thepaul

 
Delphi 7 Personal
 
#9
  Alt 3. Jan 2005, 14:25
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!
Paul
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

 
Delphi 10 Seattle Enterprise
 
#10
  Alt 3. Jan 2005, 14:49
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

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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17: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