//Fonction addition int addition(int X, int Y) { if ((X ==1) && (Y ==1) || (X ==0) && (Y ==0)) { return 0; } else { return 1; } } //Fonction addition_trois_nombres int addition_trois_nombres(int X, int Y, int Z) { if ((X ==1) && (Y ==1) && (Z ==1) || (X ==0) && (Y ==0) && (Z ==1) || (X ==0) && (Y ==1) && (Z ==0) || (X ==1) && (Y ==0) && (Z ==0)) { return 1; } else { return 0; } } // Fonction retenue int retenue(int X, int Y, int Z) { if ((X ==1) && (Y ==1) || (X ==1) && (Z ==1) || (Y ==1) && (Z ==1)) { return 1; } else { return 0; } } //Affichage du tableau void affiche_tab(int[] tableau) { for (int i =0; i < 9; i ++) { print(tableau[i] + " "); } } //Programme : addition de 2 octets void main() { //Création d'un tableau de 9 colonnes et 4 lignes int [][] tab = new int [4][9]; //Entrée du 1er octet par l'utilisateur println("Entrer chiffre par chiffre, un premier nombre en binaire (max : un octet)"); //Remplissage de la 1ere ligne du tableau for (int i =1; i < tab[1].length; i ++) { int X = readInteger(); tab[1][i] = X; } //Entrée du 2eme octet par l'utilisateur println("Entrer chiffre par chiffre un deuxième nombre en binaire (max : un octet)"); //Remplissage de la 2eme ligne du tableau for (int i =1; i < tab[1].length; i ++) { int Y = readInteger(); tab[2][i] = Y; } //Début de l'opération for (int i =8; i >=1; i --) { //Calcul de la retenue tab [0][i -1] = retenue(tab[1][i], tab [2][i], tab [0][i]); //Addition des 2 octets if (tab [0][i] ==0) { tab[3][i] = addition(tab[1][i], tab [2][i]); //Application de la retenue } else { tab[3][i] = addition_trois_nombres(tab[0][i], tab[1][i], tab [2][i]); } } //Affichage du tableau affiche_tab(tab[0]); println(); affiche_tab(tab[1]); println(); println("+"); affiche_tab(tab[2]); println(); println("__________________"); affiche_tab(tab[3]); }