Soustraction binaire (Addition de nombres binaires signés)

Dans cette vidéo pédagogique, le présentateur explique comment réaliser des soustractions de nombres binaires signés en les convertissant en additions, conformément au fonctionnement d’un ordinateur. Il détaille chaque étape : égalisation du nombre de bits, vérification de la plage représentable, calcul du complément à deux (avec méthode classique et astuce de raccourci), exécution de l’addition binaire en gérant le débordement (overflow) et interprétation du résultat selon son bit de signe. Le cours s’appuie sur quatre exemples concrets (110‑10, 1000‑111, 111‑1000, 10110‑1), montrant comment ajuster la largeur de mots, appliquer le complément à deux, additionner les bits, éliminer le bit de dépassement et lire le résultat en décimal. Le présentateur rappelle également les règles de représentation des nombres signés (0 = positif, 1 = négatif) et invite les spectateurs à revoir la vidéo précédente pour les notions préalables.
Chapters
Bonjour à tous et bienvenue dans cette nouvelle vidéo sur les systèmes numériques. La dernière fois, nous avons vu comment un ordinateur représente les nombres binaires signés qui peuvent être positifs ou négatifs. Si le nombre commence par 0 alors il est positif et s'il commence par un 1 alors il est négatif. Aujourd'hui, nous allons mettre en pratique la notion des nombres signés en effectuant un ensemble d'opérations de soustraction exactement comme un ordinateur l'aurait fait en vrai. Commençons par la première opération. Nous avons 110- 10. On peut faire cette opération de manière classique, par exemple 0- 0= 0, 1- 1= 0 et 1- 0= 1. On va tout convertir en décimal afin de vérifier l'exactitude de l'opération. Donc là c'est 6 et là c'est 2, donc 6- 2= 4 et là c'est 4. Mais un ordinateur, ce n'est pas comme ça qu'il fait pour effectuer ce genre d'opération. En effet, il va transformer l'opération de soustraction en addition. Alors posons la première opération: 110- 10. La première chose à faire, c'est égaliser le nombre de bits. Nous avons 3 bits pour le premier opérande, il faut avoir 3 bits pour le deuxième opérande. Il faut équilibrer. Deuxième chose, on va convertir la soustraction en addition. C'est simple, il suffit de mettre 1 1 0 plus et d'en mettre un nombre négatif qui est 0 1 0. C'est-à-dire qu'on a transformé l'opération de soustraction en addition en faisant apparaître un nombre négatif. Provisoirement, nous allons convertir les nombres en décimal. Alors là, c'est le nombre 6 et là, c'est le nombre -2. N'oublie pas le signe. Avant de continuer, il faut vérifier si ces deux opérandes entrent dans l'intervalle que nous avons expliqué la dernière fois, c'est-à-dire grand N est compris entre moins deux à la puissance n moins un et deux à la puissance n moins un, le tout moins un. Alors si on remplace petit n par trois bits, on aura ici moins quatre et là on aura trois. On constate déjà que le nombre six n'appartient pas à cet intervalle. Ça veut tout simplement dire que cette opération n'est pas faisable sur 3 bits. Donc nous allons ajouter un bit supplémentaire. L'opération devient 0110+ . À ce stade, les nombres binaires sont toujours des nombres naturels, c'est-à-dire qu'on peut se permettre d'ajouter des 0 à gauche sans le moindre problème. Avec 4 bits maintenant, nous allons vérifier l'intervalle. Alors ça devient -8 et 7. Et on constate bien que les 2 nombres 6 et -2 appartiennent à l'intervalle, c'est-à-dire que cette opération est faisable sur un minimum de 4 bits. La prochaine opération consiste à faire disparaître le signe moins exactement comme on l'a fait dans la dernière vidéo. Et pour ce faire, il suffit de transformer le nombre négatif en un nombre complémentaire à 2. Rappelez-vous bien de la règle: Nous avons -N= complément à 2 de N. Alors il suffit de complémenter à 2 le nombre 0010. La méthode est simple, on va d'abord calculer le complément à 1. Il suffit d'inverser les bits un à un, donc le 0 deviendra 1, le 1 deviendra un 0, 00 deviendront 11. Alors ça c'est le complément à 1. Et pour le complément à 2, il suffit d'ajouter un 1. Ça, on a déjà vu. Alors 1+ 1, c'est 0, retenue 1. Ici, nous avons 1, 1, 1. Alors le complément à 2 du nombre 0010 vaut 1110. Donc là, c'est la méthode classique, mais je vous avais dit qu'il existait un raccourci qui permet de calculer directement le complément à 2 sans passer par ces 2 opérations. L'opération est simple. Donc là, c'est le nombre initial 0010. Afin de le complémenter à 2 directement, on va commencer à droite. Si on a des zéros, on va les reprendre tels qu'ils sont. Le premier 1 que l'on va rencontrer, on va le conserver, et juste après on va tout inverser. Dans ce cas, on aura ici 1 et 1. Alors là, c'est beaucoup plus rapide pour obtenir le complément à 2. Donc je répète, vous commencez à droite, si vous avez que des zéros, vous les conservez, le premier 1 que vous rencontrez, vous le conservez aussi, et juste après vous inversez tous les bits. Maintenant, on va transformer l'opération qui deviendra 0110+ le complément à deux de ce nombre, c'est 1110. Maintenant, on va faire l'opération d'addition normalement. 0 0, c'est 0. 1+ 1, c'est 0, retenue 1. 1+ 1+ 1, c'est 1, retenue 1. 1+ 0+ 1, c'est 0, retenue 1 que l'on va mettre ici. Maintenant, regardez ce qui se passe. Nous avons 4 bits+ 4 bits est égal à 5 bits. Ça, c'est pas autorisé. Il faut avoir 4 bits en résultat. En fait, le bit le plus à gauche, on appelle ça un dépassement, il faut l'éliminer. On appelle aussi débordement ou bien overflow comme vous voulez, mais l'essentiel c'est qu'il nous reste maintenant un nombre qui contient 4 bits. Ça c'est le résultat final. Regardons le signe de ce nombre. Puisqu'il commence par un 0, alors il est positif. Et puisqu'il est positif, alors on peut lire sa valeur directement, c'est-à-dire on peut le convertir directement en décimal. Et ça donne le nombre 4 en décimale. Effectivement, 6- 2 est égal à 4. Alors c'est comme ça qu'on fait pour ce genre d'opération. Et pour la représentation du résultat, il suffit de le copier tel qu'il est. Alors c'est 0100. Maintenant on passe à la deuxième opération. Nous avons 1000- 111. Première chose, on va égaliser le nombre de bits, donc on va ajouter un 0 ici. Deuxième chose, on va convertir la soustraction en addition, donc plus, et là c'est un nombre négatif. Puis on convertit en décimal, là c'est le nombre 8 et là c'est le nombre -7. Maintenant, on vérifie l'intervalle qui est là. Nous avons 4 bits Alors si on remplace N par 4, on obtiendra ici -8 et là c'est 7. On constate bien que le nombre 8 n'appartient pas à l'intervalle, c'est-à-dire que l'opération n'est pas faisable sur 4 bits. Alors il faut ajouter un 5e bit. L'opération devient comme ça, donc 01000+ . On revérifie l'intervalle. Avec 5 bits, on aura ici -2 à la puissance 4, donc c'est -16, et là c'est 2 à la puissance 4- 1, c'est 15. Alors les 2 nombres 8 et -7 appartiennent à l'intervalle, c'est-à-dire que notre opération est faisable sur un minimum de 5 bits. Quand je dis un minimum, c'est-à-dire rien ne vous empêche d'ajouter des 0 comme vous voulez à gauche, parce qu'à ce stade Souvenez-vous bien qu'il s'agit d'un nombre binaire naturel. Maintenant, on va complémenter à 2 le nombre négatif, donc l'opération deviendra comme ça: 01000. Et le complément à 2 de 00110, on va le calculer directement avec l'astuce que je vous ai montrée. Alors, on commence à droite. Le premier 1 qu'on rencontre, on va le conserver. Ensuite, on inverse tous les bits un à un, donc là ça donne 0. Remarquez bien que le nombre positif 8 commence par un 0 et le nombre négatif -7 commence par un 1. Alors c'est fait automatiquement. À ce stade, nous avons des nombres signés, c'est-à-dire j'ai pas le droit d'ajouter des zéros. Là, ça commence bien par un 0 pour dire qu'il est positif, et là par un 1 pour dire qu'il est négatif. Maintenant, on effectue l'opération. 0+ 1, c'est 1. 0+ 0, c'est 0. 0+ 0, c'est 0. 1+ 1, c'est 0. Retenue 1. 1+ 0+ 1, c'est 0, retenue 1, qui est là. Là encore, l'opération 5 bits+ 5 bits a donné 6 bits. Alors le 6e bit le plus à gauche, c'est un dépassement, on va l'éliminer. Si on regarde le signe du résultat, on trouve que ça commence par un 0, donc il est positif. Alors on peut lire sa valeur directement, qui vaut dans ce cas 1. Effectivement, 8- 7= 1. Donc là, on mettra le résultat encore, c'est 00001. Bien sûr, on pourrait mettre indirectement si on le préfixait par autant de 0, mais comme j'ai dit au début, on va rapporter le résultat tel qu'il est. Troisième opération: 111- 1000. On va égaliser le nombre de bits, on ajoute un 0 ici pour avoir 4 bits de 4 bits. On va convertir la soustraction en addition. Donc on a un nombre positif et un nombre négatif. On va tout convertir en décimal. Là c'est 7 et là c'est -8. Maintenant on vérifie l'intervalle. On remplace ici le n avec 4 qui représente le nombre de bits. On obtient -8 et là c'est 7. On constate bien que les 2 opérantes qui sont 7 et -8 appartiennent à l'intervalle. Alors aucune nécessité d'ajouter des zéros supplémentaires, bien que rien ne vous empêche de le faire, mais avec 4 bits minimum c'est faisable. Maintenant ce qu'on va faire c'est complémenter le nombre négatif à 2. L'opération devient 0111+, là on commence à droite, puisqu'on n'a que des zéros on va les conserver, le premier 1 qu'on va rencontrer on va le conserver, on inverse tout ce qui viendra après, mais puisqu'on n'a rien alors on s'arrête là. Vous avez peut-être remarqué que le complément à 2 du nombre négatif dans ce cas est le même, et c'est normal, parce que dans certaines situations, comme c'est le cas pour le nombre le plus à gauche de l'extrémité de l'intervalle, généralement son complément à 2 reste le même. De toute façon, vous faites vos calculs et le résultat que vous obtenez, vous le retenez. Alors là, on fait l'addition: 1+ 0= 1, 1+ 0= 1, 1+ 0= 1, et 0+ 1= 1. On n'a pas de débordement, nous avons bien 4 bits+ 4 bits= 4 bits. Par contre, le bit de signe dans ce cas c'est négatif, alors c'est égal à 1111. Déjà, le résultat, on peut le poser comme ça directement: 1111. Mais sachez que c'est un résultat qui sera compris par l'ordinateur. Mais nous les humains, quand on veut lire cette valeur, on va pas le faire directement. Comme je l'ai expliqué lors de la dernière vidéo, un nombre signé, il faut le complémenter à 2 afin de pouvoir le lire. Dans ce cas, on va tout complémenter à 2. On commence à droite, le 1 on va le conserver, puis on inverse tout. Et n'oublions pas le signe parce qu'on sait qu'il est négatif puisqu'il commence par un 1. Donc le résultat dans ce cas c'est -1. Alors cette valeur ça sert juste à la lecture, c'est-à-dire à convertir le résultat en décimal pour pouvoir le lire, mais vous quand vous faites le calcul vous pouvez noter directement le résultat que vous avez obtenu, c'est-à-dire 1111 dans ce cas. Dernière opération 10110- 1. On va égaliser le nombre de bits, donc 0 0 On convertit la soustraction en addition. Ensuite, on va tout convertir en décimal. Donc là, c'est 16+ 4, c'est 20, donc c'est 22. Et là, c'est -1. On vérifie l'intervalle. Avec 5 bits, on aurait ici -16, et là, c'est 15. On constate bien que le nombre 22 n'appartient pas à l'intervalle. Donc ce qu'on va faire, c'est ajouter un 0 supplémentaire. On va le faire juste ici. Avec 6 bits, on a -32 et 31. On constate bien que les 2 nombres 22 et -1 rentrent dans l'intervalle. Alors l'opération est faisable sur un minimum de 6 bits. Maintenant, on va convertir le nombre négatif en un nombre complémentaire à 2. Alors ça donne 010110, ça c'est le premier opérande, plus, et ce nombre devient, alors on commence à droite, le premier 1 qu'on rencontre on le conserve, ensuite on va tout inverser, alors ça va donner des 1 partout. Et remarquez l'apparition du nombre négatif ici avec un bit de signe qui est égal à 1, et là c'est un bit de signe qui est égal à 0, c'est-à-dire qu'il est positif. On fait l'addition, là c'est 1, 1+ 1 c'est 0, retenu 1. 1+ 1+ 1, c'est 1, retenu 1. 1+ 1, c'est 0, retenu 1. 1+ 1+ 1, c'est 1, retenu 1. 1+ 0+ 1, c'est 0, retenu 1. Là encore, nous avons 6 bits+ 6 bits, ça a donné 7 bits. Alors nous avons un débordement ou bien un dépassement. Le résultat maintenant est positif, alors on peut lire sa valeur directement. D'ailleurs, on va le noter, alors ça donne 0 1 0 1 0 1. Et pour le convertir en décimal, c'est simple. Donc là, c'est 2 à la puissance 4, donc c'est seize, plus quatre c'est vingt, plus un c'est vingt-et-un. Et c'est exactement le résultat attendu. Alors, c'est comme ça qu'on fait pour l'opération de soustraction. Si vous n'avez pas bien compris les opérations intermédiaires, comme le complément à deux, la vérification de l'intervalle, etc., je vous invite à regarder la vidéo précédente. Merci pour votre attention et à la vidéo prochaine.
More from Yamossoun

Algorithme de calcule de la racine carrée par dichotomie #dichotomy #squareroot #algorithm









