IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

complément à deux d'un nombre binaire


Sujet :

avec Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut complément à deux d'un nombre binaire
    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

  2. #2
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 493
    Points
    15 493
    Par défaut
    Pour préserver l'indentation utilise la balise [code ] plutôt que [quote ]

    Y a il une raison particulière à ce que tu utilises des tableaux de int?
    Il est bien plus simple d'effectuer tes calcul avec de vraies variables et faire la conversion au moment de l'affichage via Integer.toString(var, 2) ou inversement Integer.parseInt(var2, 2)).

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Je suis malheureusement obligé de procéder comme je l'ai fait, c'est imposé par mon cours de java a la haute école.
    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;
     
    	}

Discussions similaires

  1. addition de nombres binaires avec deux strings
    Par WORLDISYOURS dans le forum C++
    Réponses: 8
    Dernier message: 16/03/2015, 17h18
  2. Réponses: 2
    Dernier message: 19/04/2010, 17h12
  3. Réponses: 6
    Dernier message: 28/07/2005, 21h14
  4. UNION de deux SELECT avec nombre d'arguments différents
    Par orus8 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/07/2004, 14h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo