AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Algorithmus zum Umrechnen Hex->Real (80Bit mit Vorz) gesucht
Thema durchsuchen
Ansicht
Themen-Optionen

Algorithmus zum Umrechnen Hex->Real (80Bit mit Vorz) gesucht

Ein Thema von Garfield · begonnen am 21. Nov 2004 · letzter Beitrag vom 21. Nov 2004
Antwort Antwort
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.334 Beiträge
 
Delphi XE5 Professional
 
#1

Algorithmus zum Umrechnen Hex->Real (80Bit mit Vorz) gesu

  Alt 21. Nov 2004, 00:15
Moin,

ich will die Daten einer Binärdatei auslesen. Die 8-, 16- und 32-Bit-Zahlen funktionieren mit StrToInt, aber mehr geht da nicht. Die Suche hilft bei diesem vorzeichenbehafteten Datentyp mit 80-Bit nicht weiter. Ein paar Zahlenbeispiele:

Code:
00 00 00 00 00 00 00 A0 03 C0 = -20
00 00 00 00 00 00 00 F0 02 C0 = -15
00 00 00 00 00 00 00 A0 02 C0 = -10
00 00 00 00 00 00 00 A0 01 C0 =  -5
00 00 00 00 00 00 00 80 01 C0 =  -4
00 00 00 00 00 00 00 C0 00 C0 =  -3
00 00 00 00 00 00 00 80 00 C0 =  -2
00 00 00 00 00 00 00 80 FF BF =  -1
00 00 00 00 00 00 00 00 00 00 =   0
00 00 00 00 00 00 00 80 FF 3F =   1
00 00 00 00 00 00 00 80 00 40 =   2
00 00 00 00 00 00 00 C0 00 40 =   3
00 00 00 00 00 00 00 80 01 40 =   4
00 00 00 00 00 00 00 A0 01 40 =   5
00 00 00 00 00 00 00 A0 02 40 =  10
00 00 00 00 00 00 00 F0 02 40 =  15
00 00 00 00 00 00 00 A0 03 40 =  20
00 00 00 00 00 00 00 F0 03 40 =  30
00 00 00 00 00 00 00 A0 04 40 =  40
00 00 00 00 00 00 00 C8 04 40 =  50
00 00 00 00 00 00 00 CA 04 40 =  50.5
33 33 33 33 33 33 33 CA 04 40 =  50.55
52 B8 1E 85 EB 51 38 CA 04 40 =  50.555
00 00 00 00 00 00 00 C8 05 40 = 100
00 00 00 00 00 00 00 96 06 40 = 150
00 00 00 00 00 00 00 C8 06 40 = 200
00 00 00 00 00 00 00 96 07 40 = 300
Vielleicht kennt hier jemand eine Lösung.
  Mit Zitat antworten Zitat
DaFox

Registriert seit: 31. Jul 2003
Ort: Kippenheim
90 Beiträge
 
#2

Re: Algorithmus zum Umrechnen Hex->Real (80Bit mit Vorz)

  Alt 21. Nov 2004, 03:20
Hi!

Hab' nichts zur Hand, sorry. Aber Du sprichst wohl von double-extended precision Gleitkommazahlen!? 64 Bit Mantisse, 15 Bit Exponent. Siehe S. 3/15.

Gruß,
Markus
if u cn rd ths u cn bcm a c prgmr!
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.334 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Algorithmus zum Umrechnen Hex->Real (80Bit mit Vorz)

  Alt 21. Nov 2004, 07:34
Vielen Dank. Damit habe ich einen Ansatzpunkt. Bei dem Beispiel
Code:
52 B8 1E 85 EB 51 38 CA 04 40 =  50.555
hieße es dann, dann
Code:
52 B8 1E 85 EB 51 38 CA
die Mantisse mit 50555 und
Code:
04 40
der Exponent -3 und das Vorzeichen + sein müssten.

Wenn ich mir
Code:
00 00 00 00 00 00 00 80 01 40 =   4
00 00 00 00 00 00 00 A0 01 40 =   5
ansehe, scheint es doch nicht so zu passen, wie ich denke.
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.334 Beiträge
 
Delphi XE5 Professional
 
#4

Re: Algorithmus zum Umrechnen Hex->Real (80Bit mit Vorz)

  Alt 21. Nov 2004, 15:04
In WinHex werden die Werte unter Datentyp 'Long Double' und Einstellung 'Little Endian' richtig angegeben.
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.334 Beiträge
 
Delphi XE5 Professional
 
#5

Re: Algorithmus zum Umrechnen Hex->Real (80Bit mit Vorz)

  Alt 21. Nov 2004, 18:24
Problem gelöst. Hatte mich bei der Variblendeklaration verschrieben (Extented statt Extended) und dann gedacht, Delphi 3 kann kein Extended. Die 10 Bytes werden am Stück geladen und von Delphi richtig weiterverarbeitet.

Code:
var fs : TFilestream;
    er : Extended;

...
fs.Read (er, 10);
...
Danke für die Hilfe.
  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 12:39 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