Coder un algo pour compter de 1 à 8 en binaire [Résolu]

Signaler
Messages postés
22
Date d'inscription
mardi 10 juillet 2007
Statut
Membre
Dernière intervention
14 décembre 2012
-
cs_sondos01
Messages postés
22
Date d'inscription
mardi 10 juillet 2007
Statut
Membre
Dernière intervention
14 décembre 2012
-
  Salut à tous,

Je voulais savoir si quelqu'un aurait une idée comment faire pour incrémenter une variable de 1 à 10 en binaire, en Java bien sure. Pour être plus précis voilà ce que je veux faire.


Je veux créer un tableau T[8][3] de taille 8x3. Dans chaque ligne, je met une valeur (de 0 à 8). Je souhaite ensuite mettre dans chaque ligne du tableau les valeurs ci-dessous dans l'ordre. L'objectif est par la suite de supprimer toutes les lignes du tableau qui commence par un 0 pour dans T[][0]. ( Je vais donc devoir supprimé 000, 001,010,011)

000
001
010
011
100
101
110
111



Merci pour votre aide.

8 réponses


Salut,

int iBase10 = 1;
         String iBase2 = "";
         
         System.out.println("Representation binaire des valeurs 1 >>>> 8:");
         for(iBase10 = 1; iBase10<9; iBase10++)
         {
            iBase2 = Integer.toBinaryString(iBase10);
            iBase2 =
               (iBase2.length()>3?"":"0") + (iBase2.length()>2?"":"0")
               + (iBase2.length()>1?"":"0") + iBase2;
            System.out.println(iBase10 + " : " + iBase2);
         }


Cordialement,


...\ Dan /...
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
25
salut

simplement
// Parse and format to binary 
bi = new BigInteger("1111111111", 2); // 1023 
String s = bi.toString(2); // 1111111111 
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
260
Messages postés
22
Date d'inscription
mardi 10 juillet 2007
Statut
Membre
Dernière intervention
14 décembre 2012

Désolé d'être un peu lent à la détente..

 @nhervagault
c'est quoi exactement le type de bi? un

@julien39
Merci

@Dan
Merci pour cette réponse. Ca marche!!

Somz ;-)

Ps,

Bien entendu, le tableau dans lequel tu ranges est un tableau de String et les données sont en ordre croissant (1 à 8 dans l'exemple)


...\ Dan /...
Messages postés
22
Date d'inscription
mardi 10 juillet 2007
Statut
Membre
Dernière intervention
14 décembre 2012

Salut Dan,


une petite question concernant ton code.. J'ai essayé d'enlever la partie ci dessous et ca enlève les 0, ce qui donne pas toujours les 4 bits. Je voulais simplement savoir à quoi ca correspond le "?" et le ":" ..dans le (iBase2.length()>3?"":"0")

Merci,

Somz

 

iBase2 =
               (iBase2.length()>3?"":"0") + (iBase2.length()>2?"":"0")
               + (iBase2.length()>1?"":"0") + iBase2;



Salut Somz,

Je m'attendais un peu à cette question.

J'utilise ce qu'on appelle l'opérateur conditionnel nommé aussi opérateur ternaire.

Format:

opérande1 ? opérande2 : opérande3

Fonctionnement:

-opérande1 doit être une expréssion booléenne.
-si lŽévaluation de opérande1 est true, le résultat de l'expréssion conditionnelle est opérande2.

-si false, résultat de l'expréssion conditionnelle est opérande3.

Exemple:

J'ai un nombre de jours à afficher sous la forme "dans 5 jours" ou "dans 1 jour"

J'utilise donc (nombreDeJours>1?"s":""); ce qui signifie:

Si le nombre de jours est >1 (?) ajouter un "s" à "jour"
sinon (:) ajouter "" donc ne rien ajouter à "jour"

int nombreDeJours = 5; // avec 5 on affichera 5 jours, avec 1, 1 jour 
         String jours = "jour" +
            (nombreDeJours>1?"s":"");
         System.out.println("dans " + nombreDeJours + " " + jours);



Avec ce code on ajoute quelque chose au libellé "jour" (s ou rien)

Avec le code de ma réponse on ajoute 1, 2 ou 3 zéros avant le libellé iBase2 en fonction de sa longueur qui varie de 1 à 4.

Cordialement


...\ Dan /...
Messages postés
22
Date d'inscription
mardi 10 juillet 2007
Statut
Membre
Dernière intervention
14 décembre 2012

 C'est très clair maintenant :)

Merci,

Somz