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

Langage Java Discussion :

litéral entier en base binaire


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 120
    Par défaut litéral entier en base binaire
    Bonjour,

    Je cherche à écrire des littéraux entiers en base binaire.

    Pour rappel, on peut écrire :

    - des littéraux entiers en base 10 : i = 110;
    - des littéraux entiers en base héxadécimale : i = 0xf5;
    - des littéraux entiers en base octale : i = 0423;

    Et il me semblait que l'on pouvait écrire :

    - des littéraux entiers en base binaire: i = 0b100101110;

    Mais ceci n'a pas l'air de fonctionner chez moi...

    Ai-je loupé quelquechose ?

    Merci d'avance!

    Nico'

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par Nico57
    Et il me semblait que l'on pouvait écrire :

    - des littéraux entiers en base binaire: i = 0b100101110;
    Non, on ne peut pas écrire des littéraux en base 2 mais seulement en base 8, 10 ou 16...

    Cf les spécifications


    a++

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 120
    Par défaut
    Salut adiGuba,

    Merci pour ta réponse. En tout cas, c'est très très nul beuarkkk

    En plus je l'avais vu écrit ainsi ici :

    http://mindprod.com/jgloss/xor.html

    Nico'

  4. #4
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par Nico57
    Salut adiGuba,

    Merci pour ta réponse. En tout cas, c'est très très nul beuarkkk

    En plus je l'avais vu écrit ainsi ici :

    http://mindprod.com/jgloss/xor.html

    Nico'
    C'est vrai que ça serait un petit plus, mais bon la conversion "à la volée" en hexa de tête n'est pas si compliquée avec l'habitude...

    Un autre truc qui serait pratique serait les "unsigned byte"

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 909
    Billets dans le blog
    54
    Par défaut
    Il est toujours possible d'utilise l'auto-boxing et la méthode méthode public static int parseInt(String s, int radix) throws NumberFormatException de la classe Integer et comme NumberFormatException est une RuntimeException, pas de besoin de bloc try-catch ce qui permet donc d'utiliser cette méthode dans la définition de constantes si on est sur de son coup.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static final int X = Integer.parseInt("110", 2);
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  6. #6
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par bouye
    Il est toujours possible d'utilise l'auto-boxing et la méthode méthode public static int parseInt(String s, int radix) throws NumberFormatException de la classe Integer et comme NumberFormatException est une RuntimeException, pas de besoin de bloc try-catch ce qui permet donc d'utiliser cette méthode dans la définition de constantes si on est sur de son coup.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static final int X = Integer.parseInt("110", 2);
    Mais c'est coûteux à l'exécution, alors que ox6e c un entier à l'exécution...

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Par défaut
    si le champs est static final, à moins d'en mettre des milliers ça coute pas trop cher

  8. #8
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 909
    Billets dans le blog
    54
    Par défaut
    C'est clair, mais s'il a absolument besoin d'utiliser des nombres decrits en binaire (lui seul en connait la raison), il n'a pas trop d'autre choix, a moins de reecrire son propre parseur.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  9. #9
    Membre éprouvé Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Par défaut
    Je sais pas si c'est opportun , mais j'ai en est besoin en ce moment justement , et je me suis bidouillier ceci:
    Ca code en binaire , un int.
    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
    39
    40
     
                 /**
             * Transforme un entier en code binaire.
             * @param nbr entier à convertir
             * @return String mot binaire représentant l'entier.
             */
    	String ToBinaryString(int nbr){
    		String rbinaire = "";
    		int reste;
    		int nombre;
    		if (nbr == 0){
    			rbinaire = "0";
    		}
    		else{
    			nombre = nbr;
    			reste=0;
    			while(nombre >1){
    				reste = nombre % 2;
    				nombre = nombre / 2;
    				if(reste == 0){
    					rbinaire = rbinaire + '0';
    				}
    				else{
    					rbinaire = rbinaire + '1';
    				}
    			}
    			if(nombre == 0){
    				rbinaire = rbinaire + '0';
    			}
    			if(nombre == 1){
    				rbinaire = rbinaire + '1';
    			}
    		}
    		/*On inverse le mot binaire dans le bon sens */
    		int nbrChar = rbinaire.length()-1;
    		String retour="";
    		for(int j=nbrChar;j>=0;j--){
    			retour += rbinaire.charAt(j);
    		}
    	}
    En faite on applique la méthode "paluche processing".
    En éspérant aider.

  10. #10
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Citation Envoyé par SirDarken
    Je sais pas si c'est opportun , mais j'ai en est besoin en ce moment justement , et je me suis bidouillier ceci:
    Ca code en binaire , un int.
    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
    39
    40
     
                 /**
             * Transforme un entier en code binaire.
             * @param nbr entier à convertir
             * @return String mot binaire représentant l'entier.
             */
    	String ToBinaryString(int nbr){
    		String rbinaire = "";
    		int reste;
    		int nombre;
    		if (nbr == 0){
    			rbinaire = "0";
    		}
    		else{
    			nombre = nbr;
    			reste=0;
    			while(nombre >1){
    				reste = nombre % 2;
    				nombre = nombre / 2;
    				if(reste == 0){
    					rbinaire = rbinaire + '0';
    				}
    				else{
    					rbinaire = rbinaire + '1';
    				}
    			}
    			if(nombre == 0){
    				rbinaire = rbinaire + '0';
    			}
    			if(nombre == 1){
    				rbinaire = rbinaire + '1';
    			}
    		}
    		/*On inverse le mot binaire dans le bon sens */
    		int nbrChar = rbinaire.length()-1;
    		String retour="";
    		for(int j=nbrChar;j>=0;j--){
    			retour += rbinaire.charAt(j);
    		}
    	}
    En faite on applique la méthode "paluche processing".
    En éspérant aider.
    Cette méthode ne marche pas pour les entiers négatifs. Il faut savoir que les int sont représentés pat la technique du "complément à deux".
    En cas de nombre négatif, tu peux employer ta méthode pour transformer en binaire sa valeur absolue puis inverser tous les bits (1 en 0 et 0 en 1) et enfin tu ajoutes 1 au résultat.
    Pour plus de détails : Les types primitifs entiers


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  11. #11
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par SirDarken
    Je sais pas si c'est opportun , mais j'ai en est besoin en ce moment justement , et je me suis bidouillier ceci:
    Ca code en binaire , un int.
    Juste pour information : cette méthode existe en standard : Integer.toBinaryString()

    a++

  12. #12
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par bouye
    C'est clair, mais s'il a absolument besoin d'utiliser des nombres decrits en binaire (lui seul en connait la raison), il n'a pas trop d'autre choix, a moins de reecrire son propre parseur.
    Non mais si le nombre binaire, il l'écrit en dur, pas besoin de parse, suffit de l'écrire 0xab par exemple pour 10101011...

  13. #13
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 909
    Billets dans le blog
    54
    Par défaut
    100% d'accord, mais pour x raisons quelconques il est possible qu'il veuille (ou doive, ou prefere) les ecrire en notation binaire, pas en notation hexa.
    En tout cas, hum, je n'ais pas utilise de notation binaire depuis... bien (tres) longtemps... moi, j'utilise l'hexa ou le decimal. Et ne parlons pas de l'octal : jamais utilise.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. trouver un chiffre entier en base 16
    Par bosk1000 dans le forum Débuter
    Réponses: 44
    Dernier message: 09/02/2015, 09h08
  2. conversion d'un entier en nombre binaire .
    Par etudiante-m dans le forum Images
    Réponses: 2
    Dernier message: 06/04/2012, 13h30
  3. Réponses: 4
    Dernier message: 10/02/2010, 06h52
  4. Conversion d'entier en base 2^32 vers base 10
    Par le_duche dans le forum C++
    Réponses: 4
    Dernier message: 23/08/2008, 23h30
  5. Conversion d'entier positif en binaire
    Par tribalweb dans le forum Langage
    Réponses: 2
    Dernier message: 18/05/2008, 03h48

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