Conversion donnees de type double en binaire

tfares Messages postés 5 Date d'inscription mardi 12 décembre 2000 Statut Membre Dernière intervention 19 juin 2008 - 19 juin 2008 à 21:04
tfares Messages postés 5 Date d'inscription mardi 12 décembre 2000 Statut Membre Dernière intervention 19 juin 2008 - 19 juin 2008 à 21:48
    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é

4 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
19 juin 2008 à 21:06
C'est à dire ?

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
tfares Messages postés 5 Date d'inscription mardi 12 décembre 2000 Statut Membre Dernière intervention 19 juin 2008
19 juin 2008 à 21:14
    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
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
19 juin 2008 à 21:34
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
0
tfares Messages postés 5 Date d'inscription mardi 12 décembre 2000 Statut Membre Dernière intervention 19 juin 2008
19 juin 2008 à 21:48
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
--------------------------------------------------------
0
Rejoignez-nous