![]() |
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 |
Re: IEEE754 Float
Delphi-Quellcode:
type
FloatToHex = record case Byte of 0: (AsHex: array[0..3] of Char); 1: (AsFloat: Single); end; |
Re: IEEE754 Float
Hallo Dax
Kannst du mir bitte das Erklaeren Enzo |
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...
|
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 |
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] |
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 15:51 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