AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dec to Hex

Ein Thema von rich123 · begonnen am 11. Aug 2008 · letzter Beitrag vom 11. Aug 2008
Antwort Antwort
Seite 2 von 3     12 3      
Panthrax

Registriert seit: 18. Feb 2005
286 Beiträge
 
Delphi 2010 Enterprise
 
#11

Re: Dec to Hex

  Alt 11. Aug 2008, 09:30
Ich vermute, du suchst eher soetwas:
Delphi-Quellcode:
uses
  SysUtils, Math;

function FloatToHex(const X: Double; const Digits, N: Integer): String;
begin
  Result:=IntToHex(Trunc(X),Digits)+','+IntToHex(Round((X-Trunc(X))*Power(10,N)),N);
end;
Die FloatToHex-Routine aus dem Vorschlag oben ist eher geeignet eine Gleitkommazahl eben nicht im Binär-, sondern im Textformat mit Hexzeichen zu speichern. Als Mensch ist man beim Lesen aber nicht schlauer. Und ehrlich, gesagt frage ich mich immernoch wozu man sowohl das eine oder noch andere braucht...
"Es gibt keine schlimmere Lüge als die Wahrheit, die von denen, die sie hören, missverstanden wird."
  Mit Zitat antworten Zitat
Panthrax

Registriert seit: 18. Feb 2005
286 Beiträge
 
Delphi 2010 Enterprise
 
#12

Re: Dec to Hex

  Alt 11. Aug 2008, 09:33
Zitat von rich123:
Wenn ich das in den Windows Rechner schmeisse liefert der mir eine enorm hohe Zahl.
Ich denke ich mache da was mit dem Komma falsch.

oder?
Gib doch bitte mal beim Windows-Taschenrechner eine Zahl mit Nachkommastelle <> 0 ein. Schalte von Dez auf Hex und zurück. Und gucke dann, ob deine Nachkommastellen noch vorhanden sind. - Tadaaa! Der Windows-Taschenrechner ignoriert sie einfach... Deshalb könen sie beim Zurückschalten nicht wiederhergestellt werden. So jetzt aber genug zum Thema, weil ich immernoch nicht begriffen haben, wozu man soetwas braucht...
"Es gibt keine schlimmere Lüge als die Wahrheit, die von denen, die sie hören, missverstanden wird."
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#13

Re: Dec to Hex

  Alt 11. Aug 2008, 09:36
Hallo,

den Namen FloatToHex() hat John Herbster etwas unglücklich gewählt - finde ich. Er liefert einfach eine sortierfähige Hex-Darstellung eines Float-Wertes, gesucht wird hier aber wohl ein Analogon zu FloatToStr(), wobei die Ausgabe zur Basis 16 anstelle zu Basis 10 erfolgen soll.

Delphi-Quellcode:
function FracToHex(value: Double): string;
const
  HEX_DIGIT = '0123456789ABCDEF';
begin
  Result := '';
  repeat
    value := Frac(value) * 16;
    Result := Result + HEX_DIGIT[Succ(Trunc(value))];
  until IsZero(value);
end;

function FloatToHex(d: Double): string;
begin
  Result := Format('%x%s%s', [Trunc(d), DecimalSeparator, FracToHex(d)]);
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.762 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: Dec to Hex

  Alt 11. Aug 2008, 09:53
Nach welcher Norm werden denn hier die Gleitkommazahlen umgewandelt? Ist das IEE?
Sieht für mich eigentlich nicht unbedingt so aus.

Wozu soll das dann gut sein?

Edit: Und hier noch geschwind ein Link zum Thema IEE http://de.wikipedia.org/wiki/Gleitko..._andere_Normen
Da in dem Artikel ein Algorithmus gezeigt, wird, wie die Umwandlung stattfindet, ist das ja auch ein brauchbarer Ansatz die Sache richtig zu machen.

Sherlock
Oliver
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#15

Re: Dec to Hex

  Alt 11. Aug 2008, 10:05
Hallo Sherlock,

deine Fragen richten sich wohl nicht an mich, sonst hättest du mich bestimmt adressiert. Trotzdem eine Bemerkung von mir: Es geht hier um ein mathematisches Problem. Die Umsetzung mathematischer Gesetze in der Digitaltechnik und ihre Normung durch das IEEE spielen da nur am Rande eine Rolle. Speziell die Konvertierung zwischen Zahlsystemen lässt sich mit Stift und Papier nach Regeln durchführen, die älter als das IEEE sind.

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.762 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: Dec to Hex

  Alt 11. Aug 2008, 10:08
Hallo Marabu,

richtig, ich habe Dich nicht angesprochen
Ich wollte halt hören, wie die Hausaufgabe genauer formuliert ist.

Sherlock
Oliver
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#17

Re: Dec to Hex

  Alt 11. Aug 2008, 10:16
An eine Hausaufgabe als mögliche Motivation für diesen Thread habe ich nicht gedacht.

Nur gut, dass ich die Vorzeichenbehandlung weggelassen habe.
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#18

Re: Dec to Hex

  Alt 11. Aug 2008, 10:28
Zitat von marabu:
... Die Umsetzung mathematischer Gesetze in der Digitaltechnik und ihre Normung durch das IEEE spielen da nur am Rande eine Rolle. Speziell die Konvertierung zwischen Zahlsystemen lässt sich mit Stift und Papier nach Regeln durchführen, die älter als das IEEE sind.

Freundliche Grüße
Hallo,

logisch, die mathemathischen Gesetze sind ewigwährend, auch die, die der Mensch noch nicht gefunden hat - diese tiefgreifende Erkenntnis hilft aber beim Programmieren garnicht weiter.

Falls man mit einer umgewandelten Zahl noch irgendetwas Sinnvolles anfangen will, ist es schon sehr hilfreich, Normen zu beachten, eine Zahl in Gleitkommadarstellung kann eben nur wieder gelesen werden, wenn man den Aufbau von Vorzeichen, Exponent und Mantisse kennt. Auch die verschiedenen manuellen Schreibweisen sind nur vereinbarte Kodierungen (und nicht die "Zahl selbst", wers nicht glaubt, soll Pi hinschreiben).

Gruss Reinhard
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#19

Re: Dec to Hex

  Alt 11. Aug 2008, 10:54
Hallo Reinhard,

Zitat von Reinhard Kern:
... logisch, die mathemathischen Gesetze sind ewigwährend, auch die, die der Mensch noch nicht gefunden hat - diese tiefgreifende Erkenntnis hilft aber beim Programmieren garnicht weiter. ...
da es hier nach meiner Einschätzung lediglich um die Konvertierung von Darstellungen 12.5 (10) --> C.8 (16) geht, werden Kenntnisse über die interne Repräsentation von Gleitkommazahlen wirklich nicht benötigt. Mit anderen Worten hatte ich das ja bereits geschrieben, aber mitunter ist eine Umformulierung ja ganz hilfreich. Warten wir mal ab, was der thread owner noch zur Erhellung beiträgt.

Freundliche Grüße
  Mit Zitat antworten Zitat
rich123

Registriert seit: 8. Aug 2008
Ort: Wien
44 Beiträge
 
Delphi 7 Enterprise
 
#20

Re: Dec to Hex

  Alt 11. Aug 2008, 11:36
Hallo,

Ähh ich erkläre mal kurz wozu die Umrechnung.
Und zwar lese ich aus einer Excel-Tabelle Werte aus und gebe die über Ethernet-Schnittstelle an ein Gerät weiter. Die Funktion (die nicht ich geschrieben habe) um Werte an das Gerät zu senden, nimmt nur HEX Werte an.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 14:12 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