Conversion donnees de type double en binaire

Signaler
Messages postés
5
Date d'inscription
mardi 12 décembre 2000
Statut
Membre
Dernière intervention
19 juin 2008
-
Messages postés
5
Date d'inscription
mardi 12 décembre 2000
Statut
Membre
Dernière intervention
19 juin 2008
-
    Bonjour

j'ai un probleme de conversion de données de type double en binaire
les division par deux successif ne donne pas le resultat escompte

merci de me renseigné
A voir également:

4 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
40
C'est à dire ?

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
5
Date d'inscription
mardi 12 décembre 2000
Statut
Membre
Dernière intervention
19 juin 2008

    conversion d un chiffre en double ne donne pas le binaire attendu
exemple 5,44452E+39 devrait donner une chaine de 132 caracteres avec le premier caracteres a un
mais cela donne autre chose
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
40
Le problème est Comment tu fais ta conversion ????

Le nombre Double n'est pas enregistré tel quel en mémoire. Il est enregistré sous un format décrit par la norme internationnale IEEE754 et est défini comme ceci.

- Codé sur 64 bits
- 52 bits de poid faible représentant la mantisse (x.xxx.....)
- 11 bits suivants représentant l'exposant décalé de 1023 (2^(11-1)-1)
- 1 bit de signe
Plusieurs variations existent

5.44452E+39 sera représenté en mémoire (selon les variations) par (en Hexa) : &H7260000000084DC4

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
5
Date d'inscription
mardi 12 décembre 2000
Statut
Membre
Dernière intervention
19 juin 2008

voici le source  de ma conversion
--------------------------------------------------------

Sub Calculbin(nombre As Double, resultatbin())
Dim divident, reste As Double
Dim dividentINT, DIVIDENTFIX As Double

Dim indic As Integer
ReDim resultatbin(200)
For indic = 1 To 200
    resultatbin(indic) = Empty
Next indic
indic = 0
    Do Until DIVIDENTFIX = 1
        divident = nombre / 2
        DIVIDENTFIX = Fix(divident)
        resultatbin(indic) = Fix(nombre - (DIVIDENTFIX * 2))
  If resultatbin(indic) = 1 Then
    Debug.Print "debut ";
        
    Debug.Print "indic "; indic; "--"; "resultatbin(indic) "; resultatbin(indic); "--"
     Debug.Print "Nombre "; nombre; "--"
     Debug.Print "divident     "; divident; "--"
    Debug.Print "dividentfix "; DIVIDENTFIX; "--"
   End If
        nombre = DIVIDENTFIX
        indic = indic + 1

    Loop
        resultatbin(indic) = divident
ReDim Preserve resultatbin(indic)
'Resultatbin = resultat
'For indic = 1 To UBound(resultat)
'Resultatbin(indic) = resultat(indic)
'
'Next indic

End Sub
--------------------------------------------------------