IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Conversion 8 octets en double [FAQ]


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Conversion 8 octets en double
    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 ?

  2. #2
    HPJ
    HPJ est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Par défaut
    Tu veux convertir 8 octets en un entier signé/non signé (double word) ou bien en un flottant double précision IEEE :

  3. #3
    Invité
    Invité(e)
    Par défaut IEEE 754
    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...

  4. #4
    HPJ
    HPJ est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Par défaut
    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

  5. #5
    Invité
    Invité(e)
    Par défaut Merci !!
    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".

  6. #6
    HPJ
    HPJ est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Par défaut
    Il y a beaucoup de fonctions très utiles dans l'API Windows

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET] Conversion de String en Double
    Par JB-Tech dans le forum Windows Forms
    Réponses: 9
    Dernier message: 26/02/2018, 07h32
  2. Conversion de 3 octets en double
    Par Anduriel dans le forum Visual Studio
    Réponses: 1
    Dernier message: 14/02/2015, 17h30
  3. conversion en octets
    Par sanatou dans le forum C++
    Réponses: 5
    Dernier message: 21/10/2006, 15h49
  4. octet en double ou en float ??
    Par lykim dans le forum Langage
    Réponses: 16
    Dernier message: 16/05/2006, 23h43
  5. [VB5]Conversion d'octets en nombres entiers
    Par KardiakKris dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 23/03/2006, 17h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo