Les Snippets

Connexion

IEEE-754 - Conversion 64-bits vers Double

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 23/08/2010 23:29:48 et initié par Renfield [Liste]
Date de mise à jour : 24/08/2010 10:52:34
Vue : 3266
Catégorie(s) : Maths, Algorithme, Divers
Langages dispo pour ce code :
- VB6, VBA



Langage : VB6 , VBA
Date ajout : 23/08/2010
Posté par Renfield [Liste]
DateMAJ : 24/08/2010
Private Function IEEE754_64(ByRef HexValue() As Byte) As Double Dim i As Integer Dim nSign As Integer Dim nExponent As Double Dim nMantissa As Double Dim nPow As Long Dim nValue As Long    If CBool(HexValue(0) And 128) Then        nSign = -2    Else        nSign = 2    End If    nExponent = ((HexValue(0) And Not 128) * 256 + HexValue(1)) \ 16 - 1023    nValue = (HexValue(1) And &HF&)    nPow = -4        nMantissa = CBool(nValue And 8) * 2 ^ -1 - _                CBool(nValue And 4) * 2 ^ -2 - _                CBool(nValue And 2) * 2 ^ -3 - _                CBool(nValue And 1) * 2 ^ -4 + 1    For i = 2 To 7        nValue = HexValue(i)        If nValue Then            nMantissa = nMantissa - CBool(nValue And 128) * 2 ^ (nPow - 1) - _                                    CBool(nValue And 64) * 2 ^ (nPow - 2) - _                                    CBool(nValue And 32) * 2 ^ (nPow - 3) - _                                    CBool(nValue And 16) * 2 ^ (nPow - 4) - _                                    CBool(nValue And 8) * 2 ^ (nPow - 5) - _                                    CBool(nValue And 4) * 2 ^ (nPow - 6) - _                                    CBool(nValue And 2) * 2 ^ (nPow - 7) - _                                    CBool(nValue And 1) * 2 ^ (nPow - 8)        End If        nPow = nPow - 8    Next    IEEE754_64 = nSign ^ nExponent * nMantissa End Function
By Renfield
Remarque :
exemple:
40F1095000000000 => 69781.000
test sur : http://babbage.cs.qc.edu/IEEE-754/IEEE-754hex64.html

Snippets en rapport avec : Ieee754, Double, 64bits, Exposant, Mantisse



Codes sources en rapport avec : Ieee754, Double, 64bits, Exposant, Mantisse

{Python} RECHERCHE DE DOUBLONS DANS DES DOSSIERS.
Ce script permet de faire une recherche récursive dans un dossier pour y trouver les fichiers doublo...

{Delphi} COMMENT DESSINER SUR UN TCANVAS LE TEXTE D'UNE FORMULE CHIMIQUE AVEC INDICES ET EXPOSANTS SANS AVOIR À UTILISER DE BALISES DE SAISIE ... OU DANS UN TRICHEDIT
Un formule chimique est suffisamment "chinoise" en soi-même que l'ajout de balises lors de sa saisie...

{Visual Basic, VB6, VB.NET, VB 2005} LE COMPILATEUR DESTE IDE
DeSte IDE est un compilateur pour un Langage nommé DeSte. DeSte IDE est compatible Windows. Il p...

{C / C++ / C++.NET} DECODAGE IEEE754
decodage d'un nombre sur quatre octets (32 bits) au format ieee754 simple precision. La fonction ret...

{C / C++ / C++.NET} ORDRE DE SOMMATION DES FLOTTANTS (EXEMPLE PAR SIMULATION)
Qui a dit que l'ordre de sommation est flottant n'importait pas ?? Voici un petit simulation vous d...

{Assembleur} LIBRAIRIE DE DÉSASSEMBLAGE 32 BITS ET 64 BITS
Voici une petite librairie statique pour plateformes 32 bits qui permet de désassembler n'importe qu...

{PHP} VERIFICATEUR D'OUBLI DU DOUBLE ÉGAL DANS UNE CONDITION.
Pour les développeurs un peu étourdis qui oublient de doubler l'opérateur "=" dans une condition. Ce...

{C / C++ / C++.NET} [C/API] SUPPRESSION DE FICHIERS EN DOUBLE (NOMS/CONTENUS)
Bonjour, J'ai cherché plusieurs fois sur ce site un programme pour supprimer les fichiers en dou...

{Flash} DOUBLE CLIC SUR UN BOUTON
Un Clip avec le code suivant : // Set variable ' clicked' to 0 onClipEvent (load) { clicked = ...

{Delphi} FILTRAGE MULTIPLE D'UNE BASE DE DONNEES A PLUSIEURS COLONNES AU MÊME TEMPS
avec cette source on peut filtrer une base de donnees a plusieurs colonnes c.à.dire filtrage unique ...