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 :

Convertir un entier en booléen en choisissant le nombre de bits


Sujet :

Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 95
    Points : 56
    Points
    56
    Par défaut Convertir un entier en booléen en choisissant le nombre de bits
    Bonjour,

    j'ai un petit soucis de débutant lol
    En effet, je convertis des entiers en booléens (1 ou 0 et non T ou F) sur plusieurs bits. C'est à moi de choisir le nombre de bits.
    Par exemple :

    1 --> 01 (si je converti sur 2 bits)
    1 --> 001 (si je converti sur 3 bits)
    1 --> 0001 (si je converti sur 4 bits)

    Je vous passe les détails, mais le nombre de bits et en réalité liés aux nombres de variables stockées dans une ArrayList appelée variableArray

    Voilà ma méthode :

    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
     
    //Ligne de mon code principal 
    DecimalxCombination[0][1] = DecimalToBinary(Integer.toBinaryString(MintermsIndicesDecimal.get(i)));
     
    ...
    ...
     
    //Methode
    private Integer DecimalToBinary(String value){
    		System.out.print(value + " -- length : " + value.length()+"\n");
    		while(value.length()!=variableArray.size()){
    			value = '0'+ value;
    			System.out.print("\t"+value + " -- length : " + value.length()+"\n");
    		}
    		return Integer.parseInt(value);
    	}
    Le problème que je rencontre est le suivant : Je converti bien mon entier en booléen, j'arrive à rajouter les 0 à ma chaîne. Néanmoins quand je reconvertit en entier, les 0 disparaissent. j'imagine que c'est du au fait que la machine comprend que les bit que j'ai rajouté ne servent à rien mais dans mon cas cela pose problème. Savez-vous comment résoudre ce problème ?

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 978
    Points
    7 978
    Par défaut
    La machine ne comprends pas que c'est des Bits, tout simplement.

    Pour elle ta chaine de caractères 000100 n'est jamais qu'une chaine de caractères que tu passes a la méthode Integer.ParseInt() et qui d'office donne comme resultat un entier vallant 100.

    Par contre il existe une méthode Integer.ParseInt() qui prends une deuxieme argument specifiant la base. Dans ton cas ce paramètre sera 2.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 95
    Points : 56
    Points
    56
    Par défaut
    D'accord, je comprends.
    Mais alors comment procéder ?

    L'idée est d'implémenter la méthode de minimisation d'expression booléenne Quine McCluskey.
    Pour cela, à partir de n'importe quelle expression booléenne (ex : a.b+!b.c.(a.d.e.f) ) je créé une table de vérité. Cela me permet ainsi d'en déduire tout les minterms nécessaire pour minimiser mon expression.

    La méthode Quine McCluskey consiste à comparer les combinaisons entre chaque minterms (c'est à dire les bits de différence entre deux minterms). Par conséquent, j'ai créé une ArrayList appelée MQC. Chaque item va représenter une étape de minimisation.

    Le premier item de cette arrayList contient une ArraList appelée nOf1. Chaque item nOf1 contient une arraylist de tableau 2D qui contient contient les valeur décimal d'un minterms ainsi que sa valeur booléenne en fonction du nombre de 1 dans la combinaison. (Cad que tout les minterms ayant un seul 1 sont stocké dans un item de nof1)... Je vous avoue que comme c'est peut-être pas clair..


    l'idée, transformer un chaîne de caractères rempli de 0 et de 1 en un entier me parait plus facile pour travailler.

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 978
    Points
    7 978
    Par défaut
    J'ai édité mon message précédent, peut être n'as tu pas vu ma dernière ligne qui je pense réponds a ta question ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 95
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par wax78 Voir le message
    J'ai édité mon message précédent, peut être n'as tu pas vu ma dernière ligne qui je pense réponds a ta question ?
    Merci, je vais travailler sur cette voie. Je reviendrai vers ce post en cas de difficulté

Discussions similaires

  1. Convertir un entier en caractère avec des 0 devant
    Par Oluha dans le forum Développement
    Réponses: 12
    Dernier message: 28/08/2017, 13h37
  2. [C#] Comment convertir un entier en couleur ?
    Par L`artiste dans le forum C#
    Réponses: 3
    Dernier message: 08/01/2006, 20h52
  3. Convertir un entier en caractère
    Par b_steph_2 dans le forum C++
    Réponses: 1
    Dernier message: 01/12/2005, 11h21
  4. Convertir un entier long en string
    Par aroueche dans le forum C
    Réponses: 5
    Dernier message: 12/07/2004, 13h48
  5. [Algo] Convertir un entier en HH:min:ss
    Par Thomas Lebrun dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 26/02/2004, 23h57

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