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

Turbo Pascal Discussion :

Conversion d'un nombre décimal en binaire


Sujet :

Turbo Pascal

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Conversion d'un nombre décimal en binaire
    salut toutt le monde
    j'ai un petit problème concernant un exercice algorithmique.
    l'exercice consiste à trouver un algorithme qui permet la conversion d'un nombre de la base binaire à la base décimale.
    moi j'ai trouvé la soultion pour n postifs mai pas pour n négatif.
    Aidez moi à résoudre ce problème en Pascal .
    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Bonjour et bienvenue

    Peut -on voir déja ce que tu as fait ?

  3. #3
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Connais tu le principe de la conversion d'un nombre binaire en decimal? En gros, la question revient à savoir si tu peux le faire à la main.

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 950
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 950
    Points : 5 668
    Points
    5 668
    Par défaut
    Beo,

    Tu parles d'exercice pour un algorithme, tu dis que tu as trouvé pour n positif, mais pas pour n négatif, et surtout, tu voudrais plus ou moins qu'on te donne le programme Pascal correspondant.

    Alors :

    1) Un algorithme est indépendant du langage qui servira à l'implémenter (et en tout cas, devrait l'être, sinon c'est une implémentation). Puisqu'on te demande un algorithme, que vient faire Pascal là-dedans ?

    2) Pour n négatif, il est impossible de répondre sans autre précision : on a dû te dire quelle était la représentation utilisée pour la valeur binaire à traduire. C'est à toi d'appliquer ce qu'on t'a dit.

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    voilà l'énoncée:
    on se propose de convertir un nombre décimal positif ou nul donné (n10) en binaire.
    et ça c la fonction qui convertie:
    0) def fn conv_deci_bin (n10:entier): chaîne
    1) répéter
    reste:= n10 mod 2
    convch(reste,chreste)
    chb2:=concat (chreste,chb2)
    n10:= n10 div 2
    jusqu'à n10=0
    2) conv_10_2 := chb2
    3) fin conv_10_2
    mai là on me demande de trouver la solution pour n10<0.

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 950
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 950
    Points : 5 668
    Points
    5 668
    Par défaut
    Xou,

    D'après le titre :
    Conversion d'un nombre binaire en décimal
    Et ton premier message
    Citation Envoyé par thimo2 Voir le message
    salut toutt le monde
    j'ai un petit problème concernant un exercice algorithmique.
    l'exercice consiste à trouver un algorithme qui permet la conversion d'un nombre de la base binaire à la base décimale.
    moi j'ai trouvé la soultion pour n postifs mai pas pour n négatif.
    Aidez moi à résoudre ce problème en Pascal .
    Merci d'avance
    Or, maintenant que tu nous donnes l'énoncé:
    Citation Envoyé par thimo2 Voir le message
    voilà l'énoncée:
    on se propose de convertir un nombre décimal positif ou nul donné (n10) en binaire.
    et ça c la fonction qui convertie:
    0) def fn conv_deci_bin (n10:entier): chaîne
    1) répéter
    reste:= n10 mod 2
    convch(reste,chreste)
    chb2:=concat (chreste,chb2)
    n10:= n10 div 2
    jusqu'à n10=0
    2) conv_10_2 := chb2
    3) fin conv_10_2
    mai là on me demande de trouver la solution pour n10<0.
    Il serait bon que tu nous donne l'énoncé exact et complet.

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    mais c'est ça l'énoncée!!!!!!!!!!!!!!!!

  8. #8
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Sais tu comment on fait pour representer un nombre binaire negatif?

  9. #9
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 22
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par thimo2 Voir le message
    salut toutt le monde
    l'exercice consiste à trouver un algorithme qui permet la conversion d'un nombre de la base binaire à la base décimale.
    moi j'ai trouvé la soultion pour n postifs mai pas pour n négatif.
    Aidez moi à résoudre ce problème en Pascal .
    Merci d'avance
    Citation Envoyé par thimo2 Voir le message
    voilà l'énoncée:
    on se propose de convertir un nombre décimal positif ou nul donné (n10) en binaire.
    - Uses Liar ou avec la méthode de Pinocchio: allongement jusqu'au débordement

    Si tu cherches la conversion de chiffre négatif binaire vers le chiffre négatif décimal, il faut partir du principe suivant:

    Exemple : Un nombre binaire signé et codé sur un octet:

    [1][0][0][0][0][1][0][1] = (-5)

    En rouge, c'est le bit le plus à gauche qui indique la nature négative du chiffre.
    En bleu, c'est la valeur absolue du chiffre.

    Donc, il ne nous reste plus que 7bit pour coder, de (+127) à (-127) en lieu et place de (+0) à (+256), si l'octet n'était pas négatif (bit le plus à gauche non significatif).

  10. #10
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 950
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 950
    Points : 5 668
    Points
    5 668
    Par défaut
    Vao,
    Citation Envoyé par tekthoninks Voir le message
    - Uses Liar ou avec la méthode de Pinocchio: allongement jusqu'au débordement

    Si tu cherches la conversion de chiffre négatif binaire vers le chiffre négatif décimal, il faut partir du principe suivant:

    Exemple : Un nombre binaire signé et codé sur un octet:

    [1][0][0][0][0][1][0][1] = (-5)

    En rouge, c'est le bit le plus à gauche qui indique la nature négative du chiffre.
    En bleu, c'est la valeur absolue du chiffre.

    Donc, il ne nous reste plus que 7bit pour coder, de (+127) à (-127) en lieu et place de (+0) à (+256), si l'octet n'était pas négatif (bit le plus à gauche non significatif).
    Ce n'est pas faux en soi, mais ta convention de représentation d'un nombre négatif ne correspond pas au standard le plus répandu : représentation en complément à 2, qui a des avantages non négligeables par rapport à celle que tu décris (sinon on ne l'utiliserait pas aussi systématiquement, n'est-ce pas ?).

  11. #11
    Nouveau Candidat au Club
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    merci pour tous
    mai moi je demande le traitement en algorithmique

  12. #12
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 465
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 465
    Points : 4 312
    Points
    4 312
    Par défaut
    Un peu d'effort, on ne fera pas tout ton boulot à ta place.

  13. #13
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 950
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 950
    Points : 5 668
    Points
    5 668
    Par défaut
    Voe,

    De toute manière, ce n'est pas faisable si tu ne connais pas le format binaire utilisé (ou alors il faut utiliser par défaut le format le plus courant : complément à 2, et dans ce cas, tu peux faire une petite recherche pour savoir de quoi il s'agit, recherche qui est même probablement inutile, car on a dû t'en parler en cours).

  14. #14
    Nouveau Candidat au Club
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    on réserve le premier bit à gauche au signe: 0 pour le positif et 1 pour le négatif. les autres bits ( ce qui est en rouge) indiquent la grandeur du nombre.

    +(35)en base 10 = 0 (100011)en base 2
    -(35)en base 10 = 1 (100011)en base 2

    c'est ce que j'ai trouver.

    cet algorithme permet la conversion seulement quand n10 est positif.
    que serait-t-il pour que je puisse travailler avec n10 négatif.

    0) def fn conv_deci_bin (n10:entier): chaîne
    1) répéter
    reste:= n10 mod 2
    convch(reste,chreste)
    chb2:=concat (chreste,chb2)
    n10:= n10 div 2
    jusqu'à n10=0
    2) conv_deci_bin := chb2
    3) fin conv_deci_bin

  15. #15
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 950
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 950
    Points : 5 668
    Points
    5 668
    Par défaut
    Xoa,

    Bizarre que tu aies trouvé ça, car c'est un format très peu utilisé.

    Admettons que ce soit ok.

    Que vois-tu dans ce format :

    1 bit, le plus à gauche, vaut 0 ou 1 selon que le nombre est positif ou négatif : tu connais donc facilement le signe du nombre.

    une fois cela fait, il ne reste plus qu'à calculer la valeur en utilisant les autres bits.

    Au passage, un des inconvénients de ce format est qu'il permet de noter la valeur 0 avec un signe positif ou négatif, ce qui n'est pas le pied.

Discussions similaires

  1. Conversion d'un nombre décimal en HH:MM:SS
    Par BillGates62 dans le forum Requêtes
    Réponses: 1
    Dernier message: 04/06/2012, 13h28
  2. Réponses: 3
    Dernier message: 17/10/2011, 21h27
  3. Conversion nombre décimal <-> binaire (signé et flottant)
    Par lecteur1001 dans le forum Simulink
    Réponses: 12
    Dernier message: 06/01/2011, 16h49
  4. Conversion d'un nombre décimal en binaire.
    Par ariuss dans le forum Débuter
    Réponses: 6
    Dernier message: 17/10/2009, 11h38
  5. Conversion d'un nombre binaire en décimal
    Par grungy-soul dans le forum Général Java
    Réponses: 7
    Dernier message: 28/05/2008, 09h23

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