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

Java Discussion :

[Binaire]Affichage nombres


Sujet :

Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 24
    Points : 7
    Points
    7
    Par défaut [Binaire]Affichage nombres
    Bonjour à tous

    Voilà, je vous explique tout, j'ai crée une fonction afficherBinaire qui s'occupe simplement d'ecrire le code binaire d'un nombre passé en parametre or il s'averre qu'au moment d'appeller la fonction j'aimerais qui m'affiche le code du nombre de cette maniére :

    00000000000000000000000000011111 >> 2
    --------------------------------------------
    00000000000000000000000000000111

    En fait mon probleme reside dans le fait que je n'arrive pas à afficher le " >> 2 " à la fin, donc aprés avoir appeller la fonction.

    Je vais vous donnez un petit bout de code que j'ai ecrit vite fait afin que vous puissiez comprendre un peu le truc :
    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
     
     
    import java.io.*;
     
    public class binaire2 {
     
        private static int afficherBinaire(final int n) {
     
    	// écriture du code binaire de n
    	int masque = 0x80000000;
     
    	while (masque != 0) {
     
    	    if ((n & masque) == 0)
    			System.out.print (0);
    	    else
    			System.out.print (1);
    	    masque = masque >>> 1;
    	}
     
    	System.out.println ();
     
        return n;
        }
     
        public static void main(String[] args) {
     
        	System.out.print("Entrer un nombre : ");
        	int reponse = Clavier.lireInt();
     
        	afficherBinaire(reponse);
     
        	System.out.print("  << 2");
        }
    }

    Je remercie d'avance tous ceux qui auront l'amabilité de me repondre, en esperant avoir ete assez clairs dans mes propos.[/b]

  2. #2
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    J'ai jamais vraiment touché au nombre binaire donc de ce coté la...
    En gros , au lieu de faire
    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
     
    system.out.print(0);
    //ou
    system.out.print(1);
    //tu fait
    String resultat = "";
    String resultatSansAjout = "";
    if ((n & masque) == 0)
             //System.out.print (0);
           resultat += "0";
           resultatSansAjout += "0";
           else
            resultat += "1";
            resultatSansAjout += "1";
           masque = masque >>> 1; 
    }
    resultat += " <<2 ";
    System.out.println(resultat);
    System.out.println("----------------------------------");
    System.out.println(resultatSansAjout);
    Voila bonne chance !

  3. #3
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    1. private static void afficherBinaire(int n) aurait suffit (donc pas de retour)
    2. Je suis certaine que sans le System.out.println(); juste après le while tu auras moins de problèmes.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    946
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 946
    Points : 1 845
    Points
    1 845
    Par défaut
    System.out.println() provoque un retour à la ligne.

    Il existe des classes format (désolé de ne pas me rappeler le nom exact) qui peuvent afficher des nombres en binaire.

  5. #5
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Integer.toBinaryString(tonNombreEntier);

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    Merci pour vos reponse dejà,

    Mais si vous voulez afficherBinaire ne se contente que d'afficher le code rien d'autre et de plus cette fonction est utiliser plusieurs fois dans le source , car si vous voulez l'affichage que desire au bout du compte et celui ci:

    00000000000000000000000000011111 >> 2
    --------------------------------------------
    00000000000000000000000000000111

    j'ai essaye avec print ou println seulement soit il m'affiche " << 2" ici

    << 2 00000000000000000000000000011111

    ou alors ici

    00000000000000000000000000011111
    << 2
    ---------------------------------------------

    j'ai egalement essayé ça :

    System.out.print(afficherBinaire(reponse) + " << 2")

    mais là non seulement ca marche pas mais il me retourne le resultat de la fonction.

    J'hesite à vous donner le source complet car il est assez long.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    Merci pour vos reponse dejà,

    Mais si vous voulez afficherBinaire ne se contente que d'afficher le code rien d'autre et de plus cette fonction est utiliser plusieurs fois dans le source , car si vous voulez l'affichage que desire au bout du compte et celui ci:

    00000000000000000000000000011111 >> 2
    --------------------------------------------
    00000000000000000000000000000111

    j'ai essaye avec print ou println seulement soit il m'affiche " << 2" ici

    << 2 00000000000000000000000000011111

    ou alors ici

    00000000000000000000000000011111
    << 2
    ---------------------------------------------

    j'ai egalement essayé ça :

    System.out.print(afficherBinaire(reponse) + " << 2")

    mais là non seulement ca marche pas mais il me retourne le resultat de la fonction.

    J'hesite à vous donner le source complet car il est assez long.

  8. #8
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Bon.......

    Ta fonction retourne un ENTIER sous forme d'ENTIER et non sous forme BINAIRE.

    Tu ne fais que l'afficher cette forme BINAIRE !

    Quand tu appeles afficherBinaire(tonNombre); tu ne dois pas faire de System.out.println(); à la fin, d'où le retour à la ligne.

    De plus, une méthode fais déjà ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.print(Integer.toBinaryString(tonNombreEntier)+" << 2");

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    Voila probleme resolu, comme quoi voilà ce que j'appelle ce prendre la tete pour pas grand chose.

    Je te remercie BiMouXeTTe ainsi que tous ceux qui ont bien voulu me repondre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Différence frappe -> affichage nombres
    Par Ataturk dans le forum Access
    Réponses: 4
    Dernier message: 03/07/2009, 10h00
  2. [Affichage] nombres +positifs/-négatifs
    Par Commodore dans le forum Excel
    Réponses: 2
    Dernier message: 18/01/2008, 16h21
  3. Représentation binaire de nombres
    Par airod dans le forum Général Python
    Réponses: 8
    Dernier message: 07/06/2006, 14h14
  4. Affichage nombres réels
    Par ingelman dans le forum WinDev
    Réponses: 3
    Dernier message: 18/01/2006, 15h28
  5. Pb affichage nombre
    Par laurent35 dans le forum Access
    Réponses: 2
    Dernier message: 12/01/2006, 21h47

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