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

Algorithmes et structures de données Discussion :

Multiplication de 2 nombres binaires (CPU)


Sujet :

Algorithmes et structures de données

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 293
    Points : 188
    Points
    188
    Par défaut Multiplication de 2 nombres binaires (CPU)
    Bonsoir,

    Voilà en c je dois faire un programme qui multiplie 2 nombres binaires (interdit de les convertir en decimal, de faire la multiplication et de reconvertir le tout en binaire).

    Je suis parti sur une piste, mais avant de continuer j'aimerais connaitre comment un cpu effectue la multiplcation de 2 nombres binaire au sein de son UAL, voir si je peux m'en inspirer. j'ai trouvé ce document :




    Est-ce que c'est comme ça que l'UAL fait le traitement ?

  2. #2
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Points : 751
    Points
    751
    Par défaut
    si je ne me trompe pas, un processeur fait les operations exactement comme nous il pose la division, avec des retenues. donc soit tu as quand meme le droit d'additionner et de multiplier des chiffres (des 1 et des 0), soit tu fais comme le processeur, et tu ramene ca a des operations logiques. par exemple, l'addition de 2 chiffres binaires correspond a un "xor" (ou exclusif). en effet :

    0 xor 0 = 0
    0 xor 1 = 1
    1 xor 0 = 1
    1 xor 1 = 0

    tu remarques qu'il n'y a que dans le dernier cas que tu as une retenue, quand les 2 chiffres valent 1, donc le calcul de la retenue correspond a un "ET" logique. en chainant des ET et des XOR on peut donc additionner des nombres bianires, en posant l'addition comme quand on etait petit. pareil pour la multiplication !

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 293
    Points : 188
    Points
    188
    Par défaut
    Citation Envoyé par jobherzt
    donc soit tu as quand meme le droit d'additionner et de multiplier des chiffres (des 1 et des 0), soit tu fais comme le processeur, et tu ramene ca a des operations logiques. par exemple, l'addition de 2 chiffres binaires correspond a un "xor" (ou exclusif). en effet :
    aie j'avais oublié de le preciser, j'ai quand même le droit de faire des operations de multiplications et additions

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Points : 751
    Points
    751
    Par défaut
    ben meme reponse, si tu ne fais que des operations chiffre a chiffre, que ca soit l'operateur logique ou les operateurs +,- etc.. ca revient strictement au meme. il faut que tu "poses" tes calculs. effectivement, ton image semble fournir une solution.

  5. #5
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par exhortae
    estce que c'est comme ça que l'UAL fait le traitement ?
    En gros oui. C'est pour ça que dans certains langages, mieux vaut connaître de manière fixe l'un des opérande, ça va beaucoup plus vite car il ne fait pas n additions potentielles, mais moins, sans test ni rien.
    Dans d'autres cas, sur certains architectures particulières, la multiplication se fait en un cycle sans boucle, directement.

  6. #6
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 293
    Points : 188
    Points
    188
    Par défaut
    ok, jvais partir sur cette logique alors, merci

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

Discussions similaires

  1. Affichage d'un nombre binaire
    Par Jero13 dans le forum C
    Réponses: 5
    Dernier message: 05/12/2005, 22h17
  2. conversion nombre binaire -> decimal
    Par spoun95 dans le forum Langage
    Réponses: 7
    Dernier message: 25/11/2005, 17h46
  3. Nombre de CPU
    Par KnightsOfTheRound dans le forum x86 32-bits / 64-bits
    Réponses: 2
    Dernier message: 06/11/2005, 13h17
  4. Réponses: 6
    Dernier message: 28/07/2005, 21h14
  5. Nombre de CPU de la machine
    Par Gogoye dans le forum C
    Réponses: 4
    Dernier message: 06/11/2003, 16h19

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