Bonjour,

Voici ma méthode qui a pour but de fournir le complément à deux d'un nombre binaire. Malheureusement, elle ne fournit pas le résultat attendu, et je ne vois pas où est le problème. Je passe mon nombre binaire à la fonction par tableau(chaque cellule du tableau contient soit 1, soit 0) et j'enregistre son complément à deux dans le tableau nbCplt2. Pouvez vous m'aider svp?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
	public static int[] opposeBinaire(int[] nb)
	{
		int i=0;
		boolean inverser = false;		// indicateur pour savoir quand commencer à inverser les 0 en 1 et 1 en 0
		int[] nbCplt2 = new int[nb.length];
		int j = 0;
 
		while(j<=nb.length)
		{
			nbCplt2[j]=0;							
			j++;
		}
 
		while(inverser == false && i<=nb.length)
		{
			if(nb[i]==1)   		// on commence à inverser après le 1er un rencontré en partant de la droite
			{	
				nbCplt2[i]=1;
				inverser = true;
			}
 
			i++;
		}	
 
		while(i<=nb.length)    
		{
			if(nb[i]==0)
			{
				nbCplt2[i]=1;
				i++;
			}
 
			i++;
		}
 
		return nbCplt2;
 
	}
Désolé pour l'indentation mais elle disparait lorsque je copie/colle mon code :s