tfares
Messages postés5Date d'inscriptionmardi 12 décembre 2000StatutMembreDernière intervention19 juin 2008
-
19 juin 2008 à 21:04
tfares
Messages postés5Date d'inscriptionmardi 12 décembre 2000StatutMembreDernière intervention19 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
tfares
Messages postés5Date d'inscriptionmardi 12 décembre 2000StatutMembreDernière intervention19 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
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 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
tfares
Messages postés5Date d'inscriptionmardi 12 décembre 2000StatutMembreDernière intervention19 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 ";