Bonjour,
J'ai un tableau de 8 bytes que je voudrais convertir en double.
La fonction Cdbl() ne permet pas de couvertir...
Vous auriez une idée ?
Bonjour,
J'ai un tableau de 8 bytes que je voudrais convertir en double.
La fonction Cdbl() ne permet pas de couvertir...
Vous auriez une idée ?
Tu veux convertir 8 octets en un entier signé/non signé (double word) ou bien en un flottant double précision IEEE:
Je veux convertir mes 8 octets en un nombre flottant double selon la norme IEEE 754 Standard.
Je suis en train d'appliquer la norme...
Si quelqu'un a plus simple, je suis preneur...
Oui tu dois pouvoir "caser" tes 8 octets dans une variable Double avec l'API CopyMemory. Ca sera plus simple que d'appliquer la norme...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long) Private Sub Command1_Click() Dim v(0 To 7) As Byte Dim d As Double v(0) = 0 v(1) = 0 v(2) = 0 v(3) = 0 v(4) = 0 v(5) = 0 v(6) = 0 v(7) = 2 CopyMemory d, v(0), 8 MsgBox d End Sub
La méthode que tu m'as proposé fonctionne très bien.
J'étais en train de batailler avec les bits de la mantisse, c'est beaucoup plus simple ainsi.
Merci beaucoup, je ne connaissais pas cette fonction "MemCopy".
Il y a beaucoup de fonctions très utiles dans l'API Windows![]()
Partager