AGB  ·  Datenschutz  ·  Impressum  







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

Hex-Wert in Delphi übernehmen

Ein Thema von RWarnecke · begonnen am 17. Mär 2014 · letzter Beitrag vom 17. Mär 2014
Antwort Antwort
Der schöne Günther

Registriert seit: 6. Mär 2013
6.196 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Hex-Wert in Delphi übernehmen

  Alt 17. Mär 2014, 08:13
Nix verstehen.

Floats sind hier nicht im Spiel:
Zitat:
A hexadecimal string takes the form:
Code:
[sign] ['0x'] integer ['.' fraction] ['p' exponent]
( http://docs.python.org/2/library/std...html#float.hex )

Das sind doch normale Ganzzahlen (verdammt große), oder?

Passt das überhaupt noch in einen Int64?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.928 Beiträge
 
Delphi 12 Athens
 
#2

AW: Hex-Wert in Delphi übernehmen

  Alt 17. Mär 2014, 08:25
Passt das überhaupt noch in einen Int64?
Würde es, aber wie man auf 6.34309482461e+57 kommen könnte, wenn im Wert nur 0xffff, sprich 65535, vorkommt, sehe ich auch nicht.
Hinter dem Wert kommen noch 52 Nullen, mit 53 würde es fast hinkommen, aber das Leerzeichen in dem Wert irritiert mich.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#3

AW: Hex-Wert in Delphi übernehmen

  Alt 17. Mär 2014, 08:29
..., aber das Leerzeichen in dem Wert irritiert mich.
Dass hat der Quote-Tag hier im Forum verursacht.

Ich verstehe irgendwie immer noch nichts. Kann mir bitte jemand anhand eines Beispiels erklären, wie ich den Hex-Wert in einer Berechnung übergeben muss ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.928 Beiträge
 
Delphi 12 Athens
 
#4

AW: Hex-Wert in Delphi übernehmen

  Alt 17. Mär 2014, 08:41
Also eigentlich sieht der Wert für mich aus wie:
Delphi-Quellcode:
const
  a: Double = $00000000ffff * 10000000000000000000000000000000000000000000000000000.0;
// bzw.
const
  a: Double = $00000000ffff * 1E52;
Aber das sind ja 6,5535E56.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.688 Beiträge
 
Delphi 2007 Enterprise
 
#5

AW: Hex-Wert in Delphi übernehmen

  Alt 17. Mär 2014, 09:00
Der Wert ist ein riesen Otto, der geht gewiss nicht in einen Int64.
0000 0000 ffff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
32 Bit + 32 Bit + 32 Bit + 32 Bit + 32 Bit + 32 Bit + 32 Bit + 32 Bit
= 256 Bit

(@jaenicke: Warum sollten die Nullen nach den F's auf ein Mal dezimal sein?)

Da Delphi keinen 256 Bit Integer kennt, bleibt nur die Umwandlung in einen Fließkommawert, wobei aber Genauigkeit flöten geht. Potenziell hier sogar ohne viel Verlust (zumindest binär gesehen) wegen der vielen Nullen hinten dran. Die Ausgabe von Python deutet z.B. darauf hin, dass der Wert zumindest für die Anzeige ein Mal durch einen Float-Wert geschleift wurde. Ob das so gehört, oder eine Grenze von Python ist, weiss ich nicht. Ich weiss nur, dass man ohne 3rd Party Libs bzw. entsprechende Handarbeit solche Werte nicht einfach so in einem Delphiprogramm nutzen kann - ausser eben wie o.g. als Fließkommazahl. Ob das in dem Fall eine Option ist, hängt davon ab was damit nachher noch alles passieren muss, das können wir hier nicht einschätzen.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.928 Beiträge
 
Delphi 12 Athens
 
#6

AW: Hex-Wert in Delphi übernehmen

  Alt 17. Mär 2014, 15:30
(@jaenicke: Warum sollten die Nullen nach den F's auf ein Mal dezimal sein?)
Eigentlich sind sie das nicht, klar, aber wenn du die als hexadezimal nimmst, kommt man erst recht nicht auf den Wert, oder?
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#7

AW: Hex-Wert in Delphi übernehmen

  Alt 17. Mär 2014, 16:39
Moin moin,

Rolf sollte nochmal evtl. die Stelle vom Python-Script posten. Wenn ich hier folgendes mache:
Code:
>>> x = 0x00000000ffff0000000000000000000000000000000000000000000000000000
>>> x
26959535291011309493156476344723991336010898738574164086137773096960
>>> float(x)
2.695953529101131e+67
>>> print(x)
26959535291011309493156476344723991336010898738574164086137773096960
>>>
dann kommt auch im Python interpreter der Wert raus den Frank (Himitsu) bereits gepostet hat. Ich komme aber nicht auf den Wert vom Thread-Ersteller...
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#8

AW: Hex-Wert in Delphi übernehmen

  Alt 17. Mär 2014, 16:47
Moin moin,

Rolf sollte nochmal evtl. die Stelle vom Python-Script posten. Wenn ich hier folgendes mache:
Code:
>>> x = 0x00000000ffff0000000000000000000000000000000000000000000000000000
>>> x
26959535291011309493156476344723991336010898738574164086137773096960
>>> float(x)
2.695953529101131e+67
>>> print(x)
26959535291011309493156476344723991336010898738574164086137773096960
>>>
dann kommt auch im Python interpreter der Wert raus den Frank (Himitsu) bereits gepostet hat. Ich komme aber nicht auf den Wert vom Thread-Ersteller...
Ja, Peter Du hast recht. Ich bin in der Zeile verruscht und habe den Wert schon aus meiner Berechnung gepostet. Du und Himitsu haben recht, es ist das Ergebnis 26959535291011309493156476344723991336010898738574 164086137773096960 was Ihr gepostet habt. Aber selbst mit diesem Integer-Wert kann Delphi nicht umgehen, weil dieser zu groß ist.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:28 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