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 :

convertir les nombres réels , float en binaire


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2015
    Messages : 9
    Par défaut convertir les nombres réels , float en binaire
    salut , SVP aidez moi pour commencer à resoudre ce probleme parceque vraiment j'ai aucune aidée sur ça :

    ecrir un programme qui affiche un nombre réel, float en binaire c-à-d sa représentation binaire en memoire
    le nombre réel et lu au clavier sa representation est affiche selon le format :
    signe ,espace, exposant , espace mentisse(par bloc de 4chiffres)

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 260
    Par défaut
    Nous ne sommes pas là pour faire tes exercices.

    Nous pouvons t'aider si tu bloques sur certains points. Montres-nous le code ou tu bloques.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Invité
    Invité(e)
    Par défaut
    Du point de vue théorique, l'encodage binaire des nombres flottants suit la norme IEEE 754 : https://fr.wikipedia.org/wiki/IEEE_754
    Tu as déjà les informations théoriques quoi "où trouver les informations demandé" grâce à ce lien.

    Ensuite, il faut pouvoir "extraire" ces données d'un nombre réels...
    Pour cela, je pense que l'opérateur SHIFT ( << ou >> ) peut t'aider : https://en.wikipedia.org/wiki/Bitwis...hift_operators

    A partir de cela, je pense que tu as de quoi faire...

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 599
    Par défaut
    Bonjour,

    Il est forcément primordial de connaître le format IEEE pour traiter ton problème.
    Ensuite, il te faut poser la méthode.
    Suivant ton niveau de connaissance, le problème peut être abordé par des méthodes différentes :
    * Les flottants sont déjà en format IEEE en mémoire, on peut peut-être les extraire directement (en utilisant les masquages de bits ou les unions ayant des champs de bits)
    * voir s'il existe des fonctions dans les bibliothèques qui à partir d'un flottant retournent les éléments demandés (cela existe mais est-ce que la difficulté de l'exercice n'est pas contournée!)
    * à partir d'un nombre flottant, essayer d'appliquer des opérations pour en extraire les éléments. (par exemple avec log() on peut trouver l'exposant,...)
    * une méthode basée en 2 temps sur la conversion d'un flottant en chaîne, puis l'extraction dans la chaîne des constituants. Peut-être la plus facile à comprendre en débutant même si obtenir un résultat exact devient complexe.

    A toi de voir, parmi les pistes données celle qui correspond à tes connaissances actuelles.

  5. #5
    Invité de passage
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 1
    Par défaut
    Citation Envoyé par dalfab Voir le message
    Bonjour,

    Il est forcément primordial de connaître le format IEEE pour traiter ton problème.
    Ensuite, il te faut poser la méthode.
    Suivant ton niveau de connaissance, le problème peut être abordé par des méthodes différentes :
    * Les flottants sont déjà en format IEEE en mémoire, on peut peut-être les extraire directement (en utilisant les masquages de bits ou les unions ayant des champs de bits)
    * voir s'il existe des fonctions dans les bibliothèques qui à partir d'un flottant retournent les éléments demandés (cela existe mais est-ce que la difficulté de l'exercice n'est pas contournée!)
    * à partir d'un nombre flottant, essayer d'appliquer des opérations pour en extraire les éléments. (par exemple avec log() on peut trouver l'exposant,...)
    * une méthode basée en 2 temps sur la conversion d'un flottant en chaîne, puis l'extraction dans la chaîne des constituants. Peut-être la plus facile à comprendre en débutant même si obtenir un résultat exact devient complexe.

    A toi de voir, parmi les pistes données celle qui correspond à tes connaissances actuelles.
    quelles sont les opérations pour extraire ces éléments ? si non comment faire pour la conversion en chaînes ?

  6. #6
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 771
    Par défaut
    Il faut utiliser les opérateurs logiques &, |, <<, >>


    Exemple pour un nombre entier :
    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
    int main(int argc, char** argv)
    {
        int mask = 0x8000000;
     
        int number = 79755; // 0x1378B, 10011011110001011
     
        for(; mask >= 1; mask >>= 1) {
            if ((number & mask) == mask) {
                printf("1");
            } else {
                printf("0");
            }
        }
     
        printf("\n");
     
        return 0;
    }

  7. #7
    Membre actif Avatar de Abacar94
    Homme Profil pro
    L2 Math-informatique
    Inscrit en
    Novembre 2015
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : L2 Math-informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 103
    Par défaut
    Citation Envoyé par narimenedjebbar Voir le message
    salut , SVP aidez moi pour commencer à resoudre ce probleme parceque vraiment j'ai aucune aidée sur ça :

    ecrir un programme qui affiche un nombre réel, float en binaire c-à-d sa représentation binaire en memoire
    le nombre réel et lu au clavier sa representation est affiche selon le format :
    signe ,espace, exposant , espace mentisse(par bloc de 4chiffres)
    En faite es que tu a un début de code ou bien un début d'idée ?

Discussions similaires

  1. Convertir des nombres (hexadecimal, decimal, octal, binaires)
    Par AASProni dans le forum Codes sources à télécharger
    Réponses: 2
    Dernier message: 19/05/2014, 17h39
  2. Gérer les nombres réels pour script shell
    Par Bil'0x dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 16/07/2013, 11h25
  3. Réponses: 1
    Dernier message: 05/12/2011, 10h25
  4. [LG] Convertir un nombre binaire en décimal
    Par minela28x dans le forum Langage
    Réponses: 5
    Dernier message: 05/01/2006, 10h33

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