begin process at 2008 08 22 00:54:21
1 229 731 membres
3 nouveaux aujourd'hui
14 267 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : conversion donnees de type double en binaire [ Divers / Trucs & Astuces ] (tfares)

conversion donnees de type double en binaire le 19/06/2008 21:04:57

tfares
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é

Re : conversion donnees de type double en binaire le 19/06/2008 21:06:28

casy
Membre Club
C'est à dire ?



---- Sevyc64  (alias Casy) ----
# LE PARTAGE EST NOTRE FORCE #    [ Lien ]

Re : conversion donnees de type double en binaire le 19/06/2008 21:14:05

tfares
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

Re : conversion donnees de type double en binaire le 19/06/2008 21:34:20

casy
Membre Club

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) ----
# LE PARTAGE EST NOTRE FORCE #    [ Lien ]

Re : conversion donnees de type double en binaire le 19/06/2008 21:48:06

tfares
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
--------------------------------------------------------







Classé sous : donnees, binaire, type, conversion, double

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS