AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Hex-Wert in Delphi übernehmen

Ein Thema von RWarnecke · begonnen am 17. Mär 2014 · letzter Beitrag vom 17. Mär 2014
Antwort Antwort
Furtbichler
(Gast)

n/a Beiträge
 
#1

AW: Hex-Wert in Delphi übernehmen

  Alt 17. Mär 2014, 09:01
Wie soll mir das weiterhelfen ? Ich verstehe Deinen Post nicht.
So:
Delphi-Quellcode:
Type
  TDoubleConversion = record
    case boolean of
      false : (asDouble : Double);
      true : (asBytes : Array [0..7] Of Byte);
  End;

var
  X : TDoubleConversion;

Begin
  x.AsBytes := HexStringToByteArray(yourHexStringHere);
  writeln(x.asDouble);
End;
Aber es sind ja 16 Bytes (war vorhin zu faul zum lesen, mal wieder). Ergo vielleicht so
Delphi-Quellcode:
  TExtendedConversion = record
    case boolean of
      false : (asExtended : Extended);
      true : (asBytes : Array [0..15] Of Byte);
  End;

Geändert von Furtbichler (17. Mär 2014 um 09:21 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#2

AW: Hex-Wert in Delphi übernehmen

  Alt 17. Mär 2014, 09:13
In hexadezimaler Scheibweise entspricht doch AFAIK jede Stelle einem Nibble (Halbbyte), oder? Wir haben also 16 "Gruppen" zu je 4 Nibble, d.h. 16*4*4 = 256, also stimmt Mediums Rechnung. Das passt nicht einmal in einen Extended.
Zitat von http://docwiki.embarcadero.com/Libraries/XE5/de/System.Extended:
Auf Win32-Systemen beträgt die Größe von System.Extended 10 Byte.

Auf Win64-Systemen ist der System.Extended-Typ aber ein Alias für den Typ System.Double, der nur 8 Byte groß ist. Diese Differenz kann die numerische Genauigkeit von Gleitkommaoperationen nachteilig beeinflussen. Weitere Informationen dazu finden Sie unter Delphi-Gesichtspunkte für plattformübergreifende Anwendungen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.342 Beiträge
 
Delphi 12 Athens
 
#3

AW: Hex-Wert in Delphi übernehmen

  Alt 17. Mär 2014, 09:47
Oder anders gesagt:
Mein Editor meint es gibt 64 Zeichen (67 inkl. 0x und dem Leerzeichen), was 32 Byte entspricht.
"Native" Fließkommazahlen gibt es nur mit 4, 8 und 10 Byte.

Der größte Typ, den Delphi kennt, ist ein SET mit 256 Werten, welche auch 32 Byte ist, aber sonst ist alles Kleiner.



Im Grunde muß irgendwer erstmal rausbekommen, was das eigentlich für ein Typ sein soll.
Und wie Medium schon darstellte, seh ich auch irgendwie keinerlei Zusammenhang zwischen dem Hex-Wert und dem vorgegebenem Fließkommawert. Egal welches Format ich mir ausdenke ... mit $FFFF komm ich einfach nicht auf diesen "krummen" Wert.

Nichtmal als sehr großer "Integer" kommt was Passendes raus.
Wie gibst du denn den wert in Pyphon aus? Der Integer war da das einzige, was ich mir noch vorstellen konnte.

0x 00000000 ffff0000 00000000 00000000 00000000 00000000 00000000 00000000

$FFFF0000 * $100000000 * $100000000 * $100000000 * $100000000 * $100000000 * $100000000
=
4294901760 * 4294967296 * 4294967296 * 4294967296 * 4294967296 * 4294967296 * 4294967296
=
2,6959535291011309493156476344724e+67

Die Bytes zwischen Little-Endian und Big-Endian umzuwandeln bringt garnichts, genauso wie die Words.
Die DWORDs umzuwandeln, was eh allerdings sehr nutzlos ist, ergibt 4,1136986222856612385797845984991e+62
und QWORDs umzudrehehen, ist ja noch sinnloser und ergibt 1,7668201048317171789435028337278e+72 .




Das Einzige, was mir noch einfällt, ist "Mist".
Das ist kein Wert, es gibt im Pyphon einen Überlauf/Fehler und es kommt sonstwas dabei raus.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (17. Mär 2014 um 09:57 Uhr)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#4

AW: Hex-Wert in Delphi übernehmen

  Alt 17. Mär 2014, 13:41
Oder es ist ein Float, nur die ersten 8 Bytes interessieren und es ist auch noch falsch abgeschrieben worden... Was passiert eigentlich, wenn man die ersten Bytes in ein Double ballert?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.342 Beiträge
 
Delphi 12 Athens
 
#5

AW: Hex-Wert in Delphi übernehmen

  Alt 17. Mär 2014, 16:11
Oder es ist ein Float, nur die ersten 8 Bytes interessieren und es ist auch noch falsch abgeschrieben worden... Was passiert eigentlich, wenn man die ersten Bytes in ein Double ballert?
Und wie Medium schon darstellte, seh ich auch irgendwie keinerlei Zusammenhang zwischen dem Hex-Wert und dem vorgegebenem Fließkommawert. Egal welches Format ich mir ausdenke ... mit $FFFF komm ich einfach nicht auf diesen "krummen" Wert.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:29 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