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

C Discussion :

Récupération d'un double à partir d'un fichier binaire


Sujet :

C

  1. #21
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Mer.cury
    ca ne m'affiche pas le bon nombre sur le powerpc, dixit le code que j'avais montré plus haut et qui lui aussi ne marchait pas.

    (j'ai un 0.00000 à l'affichage au lieu d'un -30.00000)
    Je me demande si il n'y a pas plusieurs format IEEE ?

  2. #22
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    le format du G5 est de compatible IEEE 754, tout comme le processeur Intel que j'utilise :o

  3. #23
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    mhh bon, j'ai décorté le double bit à bit ce qui permet de confirmer l'hypothese ci dessus:

    double : -30,0

    sur Intel (little endian):
    11000000 00111110 00000000 00000000 00000000 00000000 00000000 00000000

    double transformé en binaire

    lecture du double depuis le fichier binaire sur PPC (big endian):
    00000000 00000000 00000000 00000000 00000000 00000000 00111110 11000000

    j'applique ensuite le convertisseur décrit plus haut sur le PPC :
    11000000 00111110 00000000 00000000 00000000 00000000 00000000 00000000

    (on remarque que c'est la meme structure que le double d'Intel en terme de bits)

    et quand je veux afficher ce resultat:
    printf("%f",resultat);

    ca ne marche pas.
    l'erreur venait de là, car si j'écris :
    printf("%f",resultat.flottant);

    j'ai bien le résultat que je cherchais *ouf*

    merci.

  4. #24
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    308
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 308
    Points : 373
    Points
    373
    Par défaut
    Euh... Je vais te montrer comment on utilise ma fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    double var;
    fread(&var, sizeof(double), 1, fichier);
     
    var = swapDouble(var);
     
    printf("%f", var);
    ...

Discussions similaires

  1. Récupération de valeurs a partir d'un fichier texte
    Par D_light dans le forum Shell et commandes POSIX
    Réponses: 4
    Dernier message: 08/11/2012, 14h56
  2. [fstream]Lecture d'un double à partir d'un fichier
    Par yo_haha dans le forum Débuter
    Réponses: 8
    Dernier message: 12/01/2011, 10h57
  3. Réponses: 10
    Dernier message: 07/12/2009, 17h00
  4. Réponses: 2
    Dernier message: 22/05/2009, 15h06
  5. Récupération automatique d'images à partir d'un fichier vidéo
    Par osscour dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 15/05/2006, 09h11

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