Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   IEEE754 Float (https://www.delphipraxis.net/62807-ieee754-float.html)

enzo 9. Feb 2006 18:56


IEEE754 Float
 
Ich habe folgendes Problem: Ich muss die Zahl ihn HEX 43CC70AC ihn Float umwandeln,

das resultat ist 408.8802490234375

Der Standard IEEE 754 sieht folgende rechnerinterne Darstellung für eine Gleitkommazahl vor:

+---+-------+------------------------------+
| S | E | F |
+---+-------+------------------------------+

Gearbeitet wird mit einer Zahlendarstellung zur Basis 2.

S - Vorzeichen (sign)
1 Bit
0 : Plus, 1 : Minus

E - Exponent
8 Bit (einfach genau), 11 Bit (doppelt genau)

F - Mantisse (fraction)
23 Bit (einfach genau), 52 Bit (doppelt genau)



Meine frage gibt es schon ein fertigen UNIT oder Komponenten oder kann mir jemand Helfen


Ich Bedanke mich

Gruss Enzo

Dax 9. Feb 2006 19:05

Re: IEEE754 Float
 
Delphi-Quellcode:
type
  FloatToHex = record
    case Byte of
      0: (AsHex: array[0..3] of Char);
      1: (AsFloat: Single);
  end;

enzo 9. Feb 2006 19:23

Re: IEEE754 Float
 
Hallo Dax

Kannst du mir bitte das Erklaeren


Enzo

Dax 9. Feb 2006 19:59

Re: IEEE754 Float
 
Das hast den record-Typen. Damit deklarierst du dir ne Variable var Conveter: FloatToHex. Dieser Variable weist du zB den Float-Wert zu, dann stehen in AsHex die Bytes, und umgekehrt...

enzo 9. Feb 2006 20:15

Re: IEEE754 Float
 
Es ist keine normae Umwandlung von Floattostr , Bit 31 fuer Vorzeichen,Bit30 - Bit 23 Exponent ,
und Bit 22-Bit0 Mantise.

Gruss enzo

Khabarakh 9. Feb 2006 20:29

Re: IEEE754 Float
 
Denkst du, Borland hat sich seine Typen aus der Nase gezogen :gruebel: ? Single und Double entsprechen genau der IEEE-Norm, weshalb Dax' Code funktionieren sollte.

[OT] @Dax: Records grundsätzlich ohne T oder zu viel .Net :mrgreen: ? [/OT]

enzo 9. Feb 2006 20:38

Re: IEEE754 Float
 
:lol: :wall: Fehler von mir :duck: es funktioniert :bounce1: :dancer: ,


danke nochmals an alle :cheers:


gruss enzo :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:02 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