MINI PROJET 3 Problématique : Comment créer un algorithme qui additionne deux nombres binaires et qui calcul le complément à deux du nombre binaire préalablement rentré par l’utilisateur. Dans les deux algorithmes nous nous sommes inspirés de la méthode manuelle : L'addition en binaire se fait avec les mêmes règles qu'en décimale : On commence à additionner les bits de poids faible (les bits de droite) puis on a des retenues lorsque la somme de deux bits de même poids dépasse la valeur de l'unité la plus grande (dans le cas du binaire : 1), cette retenue est reportée sur le bit (de poids plus fort) suivant. Exemples : 0001 0011 + 0000 0010 Pour additionner des nombres binaires qui sont signés, il faut déterminer d’abord le complément à deux du nombre décimal négatif. Il existe deux méthodes pour obtenir le complément à deux : - Le complément à deux d'un nombre correspond au complément à 1 du nombre à qui on a ajouté la valeur "1". Pour calculer le complément à 1 on inverse chaque bit, ce qui revient à transformer les "0" en "1" et les "1" en "0". Exemples : +4 décimal 0000 0100 en binaire /4 décimal 1111 1011 en complément à un Exemple 2 : +100 décimal 0110 0100 en binaire /100 décimal 1001 1011 en complément à un Exemple de calcul pour déterminer le complément à deux de 0001 0101, Complément à 1 = 1110 1010 DONC Complément à 2 = 1110 1010 + 0000 0001 = 1110 1011 On peut également déterminer le complément à deux d'un nombre directement : On conserve tous les bits à partir de la droite jusqu'au premier "1" inclus et ensuite il suffit d’inverser tous les bits suivants. Exemple : le complément à deux de 1011 0100 vaut : Complément à 2 = 0100 1100 (les 3 bits de poids faibles sont inchangés). Exemple : (-4) + 6 Dans notre programme Python du complément à 2 nous avons choisi d’utiliser la première méthode, qui est plus facile d’un point de vue algorithmique : En effet il suffit d’inverser tous les bits su nombres binaires puis de rajouter 1 pour obtenir le complément à 2. Test 1 : La fonction add2 (Additionner deux nombres binaires) Test 2 : La fonction neg2 (Calcul du complément à 2) Conclusion : Ce TP nous à demander beaucoup de réflexion mais il nous à permis d’approfondir nos bases sur python qui pourrait nous être utile pour le TPE final. Nous avons essuyé de nombreux échecs avant de parvenir à un résultat optimisé au maximum de nos capacités. Nous avons rencontré plus de difficulté dans l’algorithme dans lequel on a additionné deux nombres binaires entre eux tandis que celui permettant de calcul le complément était plus facile un fois que nous avons fait le premier : En effet nous nous servis de la fonction add2 dans le deuxième.