Calcul binaire : Multplication et retenue
Bloupies
Messages postés
8
Statut
Membre
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
Bonsoir
Voilà mon problème , dans une multiplication du genre 123*234 , après conversion , cela se traduit par une multiplication sous 8 bits , et les retenues deviennent dangeureuses
on a du :
0+1 = 1
1+1= 0 et retenue 1
1+1+1=1 et retenue 1 ( pourquoi ? )
1+1+1+1=
1+1+1+1+1=
dans les 2 dernieres , j'ai vaguement retenue qu'on parlait de retenue 10 ou je sis pas quoi , mais je ne sais pas comment ajouter 10 au rang superieur par rapport au 1 de d'habitude ?
Il faudrait ajouter 0 prochain et le 1 à celui qui suit ?
Merci d'avance
Voilà mon problème , dans une multiplication du genre 123*234 , après conversion , cela se traduit par une multiplication sous 8 bits , et les retenues deviennent dangeureuses
on a du :
0+1 = 1
1+1= 0 et retenue 1
1+1+1=1 et retenue 1 ( pourquoi ? )
1+1+1+1=
1+1+1+1+1=
dans les 2 dernieres , j'ai vaguement retenue qu'on parlait de retenue 10 ou je sis pas quoi , mais je ne sais pas comment ajouter 10 au rang superieur par rapport au 1 de d'habitude ?
Il faudrait ajouter 0 prochain et le 1 à celui qui suit ?
Merci d'avance
A voir également:
- Calcul binaire : Multplication et retenue
- Binaire - Guide
- Calcul km marche à pied gratuit - Télécharger - Sport
- Calcul moyenne excel - Guide
- Calcul charpente bois gratuit - Télécharger - Architecture & Déco
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
2 réponses
Les retenues ne sont pas dangereuses, elles ne peuvent prendre que deux valeurs, 0 et 1 !
Pour la somme du premier bit on n'a pas de retenue "en attente". Soit A et B les deux premiers bits à sommer, C le bit résultat et R la valeur de la retenue pour l'étape suivante.
On a seulement 4 cas possibles :
Pour le premier bit additionné, on ne peut donc générer que deux valeurs de retenues R=0 ou R=1, il faut donc prendre en considération cette valeur pour la suite.
Pour la somme du deuxième bit, soit Q la valeur de la retenue "en attente" (c'est à dire la retenue R calculée à la somme du premier bit)
On a alors 8 cas possibles :
Là encore, on ne peut générer que deux valeurs de retenues, R=0 ou R=1. Donc les 8 cas que j'ai présenté seront encore valables pour la somme du 3è bit, du 4è, etc.
En imposant R=0 pour la somme du premier bit, ces 8 cas sont encore valables !
Il n'y a donc jamais de cas particulier : la somme de deux bits avec un bit de retenue donne toujours un bit de résultat et un bit de retenue.
Les "retenues à 10" (c'est à dire des retenues à plusieurs bits) ça n'existe pas !
Jusqu'ici j'ai parlé des additions, venons-en aux multiplications :
Si on multiplie A par B, on regarde chaque bit de B. Quand il vaut 0 on ajoute 0 donc on ne fait rien, et quand il vaut 1 on additionne le résultat courant avec A (auquel on aura ajouté les 0 des "dizaines" comme on le fait en décimal)
Exemple (valable en binaire, en décimal, et dans n'importe quelle autre base)
10101 * 1010 = 10101 * (1000 + 0 + 10 + 0) = 10101000 + 101010
Si tu "poses" cette multiplication à la main ça fait :
Il ne s'agit donc plus que de faire les sommes une à une comme je les ai décrite plus haut. Les retenues n'interviennent pas dans la multiplication !
Pour la somme du premier bit on n'a pas de retenue "en attente". Soit A et B les deux premiers bits à sommer, C le bit résultat et R la valeur de la retenue pour l'étape suivante.
On a seulement 4 cas possibles :
A+B = R C 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 1
Pour le premier bit additionné, on ne peut donc générer que deux valeurs de retenues R=0 ou R=1, il faut donc prendre en considération cette valeur pour la suite.
Pour la somme du deuxième bit, soit Q la valeur de la retenue "en attente" (c'est à dire la retenue R calculée à la somme du premier bit)
On a alors 8 cas possibles :
A+B+Q = R C 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1
Là encore, on ne peut générer que deux valeurs de retenues, R=0 ou R=1. Donc les 8 cas que j'ai présenté seront encore valables pour la somme du 3è bit, du 4è, etc.
En imposant R=0 pour la somme du premier bit, ces 8 cas sont encore valables !
Il n'y a donc jamais de cas particulier : la somme de deux bits avec un bit de retenue donne toujours un bit de résultat et un bit de retenue.
Les "retenues à 10" (c'est à dire des retenues à plusieurs bits) ça n'existe pas !
Jusqu'ici j'ai parlé des additions, venons-en aux multiplications :
Si on multiplie A par B, on regarde chaque bit de B. Quand il vaut 0 on ajoute 0 donc on ne fait rien, et quand il vaut 1 on additionne le résultat courant avec A (auquel on aura ajouté les 0 des "dizaines" comme on le fait en décimal)
Exemple (valable en binaire, en décimal, et dans n'importe quelle autre base)
10101 * 1010 = 10101 * (1000 + 0 + 10 + 0) = 10101000 + 101010
Si tu "poses" cette multiplication à la main ça fait :
10101
x 1010
----------
0
101010
000
+ 10101000
Il ne s'agit donc plus que de faire les sommes une à une comme je les ai décrite plus haut. Les retenues n'interviennent pas dans la multiplication !
Je sais pas si je me suis fais bien comprendre .
Lors de ma multiplication , je me retrouve avec :
0000000
011110110
0000000000
01111011000
000000000000
0111101100000
01111011000000
011110110000000
J'arrive dans certains cas , ou il y a 1 1 1 1 1 et 1 1 1 1 , comment savoir si =0 et retenue 1 ou =1 et retenue 1 ?
01111011 x 11101010 ----------------- 0 011110110 A 0 01111011000 B 0 0111101100000 C 01111011000000 D + 011110110000000 E ----------------- 10011001110 A+B 0111101100000 C 01111011000000 D + 011110110000000 E ----------------- 1010000101110 A+B+C 01111011000000 D + 011110110000000 E ----------------- 11001011101110 A+B+C+D + 011110110000000 E ----------------- 111000001101110 A+B+C+D+ERemarque : plutôt que de faire une seule addition à chaque fois, on peut regrouper les nombres deux par deux, et faire des additions par couples (ça gagne du temps)
01111011 x 11101010 ----------------- 0 011110110 A 0 01111011000 B 0 0111101100000 C 01111011000000 D + 011110110000000 E ----------------- 10011001110 A+B 10111000100000 C+D + 011110110000000 E ----------------- 11001011101110 A+B+C+D + 011110110000000 E ----------------- 111000001101110 A+B+C+D+E