Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : CONVERTIR UN BYTE EN 8 BOOLEAN [ Archives / Divers ] (Egalon)

jeudi 6 mai 2004 à 15:49:19 | CONVERTIR UN BYTE EN 8 BOOLEAN

Egalon

Bonjour à tous,
voilà, mon problème est dans le titre, c'est très simple mais ca marche pas....
par ex: un int = 170, en base 2, ca s'écrit: 10101010, je souhaite créer une fonction:
boolean resultat[8] = abracadabra(byte nombre) ou
boolean resultat = schtroumpf(byte nombre, int position),
où bien sûr:
{true,false,true,false,true,false,true,false,true,false} = abracadabra(170).
===========================================
voilà un truc que j'ai essayé de faire:
Mon idée était de diviser par 2 successivement un nombre. Si le résultat est pair, j'en déduit que le LSB vaut 1.

public boolean toBool(byte nombre,int pos)
{
boolean result;
int val= pos %8; // etre sur que l'on est sur un octet
val = (int)Math.pow((double)2,(double)pos); // on en déduit la division à faire.

//System.out.println("val : " + val);
if (((nombre / val)%2) == 0)
result = false;
else
result = true;
return result;
}



Bon, je suis sur que c'est une très mauvaise idée et qu'en passant par une chaine de caractère d'un byte formaté en binaire, (vous voyez ce qu je veux dire?), j'obtiendrai de meilleurs résultats (forcément parce que mon truc acutel, ben il déconne). Et p'tet même qu'il existe une fonction très pratique dans JAVA pour le faire.

Ayé, j'ai fini de poser ma question. Merci de m'avoir lu (et de m'avoir peut-être répondu).

Signé: Egalon qui comprend difficilement

jeudi 6 mai 2004 à 16:25:26 | Re : CONVERTIR UN BYTE EN 8 BOOLEAN

kirua12


Salut,

voici un code très simple :


int j = 11;
char[] cs = Integer.toBinaryString(j).toCharArray();
boolean[] bs = new boolean[cs.length];
for (int i = 0; i < cs.length; i++) {
char c = cs[i];
bs[i] = c == '1';
}



Il y a peut être plus évolué mais il a le mérite de marcher

jeudi 6 mai 2004 à 16:42:19 | Re : CONVERTIR UN BYTE EN 8 BOOLEAN

Egalon

Ben euh....... Merci, t'es trop fort.
C'est pas que je suis (vraiment) nul en prog mais je connais pas du tout les fonctions java. et pis les explications dans les almanach de SUN sont plus que succintes. Alors pour trouver ce que je cherche, c'est assez galère.
Donc si t'as une URL où on trouve des explications sur les méthodes java avec un moteur de recherche, ca éviterai d'avoir un aprenti programmeur JAVA qui vient poser des questions qui se résolvent en 6 lignes de codes...





Signé: Egalon qui comprend difficilement

jeudi 6 mai 2004 à 16:58:19 | Re : CONVERTIR UN BYTE EN 8 BOOLEAN

kirua12


ben il y a la javadoc
[ Lien ]
Là tu choisis la version de Java que tu utilises.
L'organisation des packages est basée sur le bon sens. (io pour les entrées/sorties, util pour les utilitaires ...)
Après c'est à force de coder que tu connais les méthodes

jeudi 6 mai 2004 à 17:16:55 | Re : CONVERTIR UN BYTE EN 8 BOOLEAN

kirua12


et j'ai oublié le tutorial
[ Lien ]
J'ai très souvent trouvé la réponse à mon pb surtout pour les IHM

jeudi 6 mai 2004 à 17:24:41 | Re : CONVERTIR UN BYTE EN 8 BOOLEAN

Egalon

OK merci.
Juste une précision pour le bout de code que tu m'as donné, au cas ou ca intéresserait quelqu'un d'autre.
===========================================
Faut faire attention, je voulais travailler avec des byte et le prbolème c'est qu'il faut travailler avec des Int pour se servir de Integer.toBinaryString(j).toCharArray().
Si on fait (int)monByte pour passer le probleme, ben ca va pas le prog fait pas du '0' padding mais du '1'; ex:

l'entier 240 => 11110000
mais l'octet (int)240 donne 11111111111111111111111111110000 soit un bourrage de 24x1 pour obtenir un 32bits.

donc vaut mieux travailler toujours avec des int.

et bien quelque soit le format in ou byte, les 0 à gauche ne sont pas transcris, il se peut alors que le byte ne corresponde plus à 8 boolean:
int 27 => 11011 et non pas 00011011.

Signé: Egalon qui comprend difficilement



Cette discussion est classé dans : int, true, byte, false, boolean


Répondre à ce message

Sujets en rapport avec ce message

tableau boolean [ par didoux95 ] Bonsoire a tous,dans mon programme, j'ai eu besoin d'utiliser un tableau de boolean ("boolean[] MonTableau = {true, true, false, true, false, false};" TableCellRenderer encore ... [ par mdrcedrick ] Bonjour à tous étant assez faché avec le TableCellRenderer j'ai quand même voulu travailler dessus en reprenant tout à 0. je me suis donc inspiré des Probleme positionnement avec conteneur [ par fred889944 ] Bonjour a tous, j'ai un probleme de Conteneur pour une interface graphique. Je chercher depuis des jours, mais sans resultat ... J'ai vraiment besoin convertir byte2int et int2byte [ par misterzinzin ] j'ai programmé un serveur c++ qui communique avec un client c++... je voudrais maintenant programmer un client java sans toucher au serveur c++ mais probleme de conversion d'un tableau byte[] en BufferedImage [ par ouassit ] bonjour bon je vais expliquer mon probleme ; je veux envoyer un objet de type BufferedImage en resaue utlisant une connexnio UDP ; j'ai pu convertir m ajouter dans cette table des button (JAVA JTABLE JBUTTON) [ par zarziszita ] salut a toutes le monde mon probleme que j'ai envie ajouter deux button a la fin de table une des button permet ajouter un ligne .le methode main se t petit probleme [ par flouny ] j'ai récupérer le jeu pong et j'aimerais l'ouvrir avec editplus: mais au moment de la compilation j'ai un message du genre:pinpong.java uses or overri Sérialisation [ par saispasq ] salut à tou, je veu savoir comen sérialiser des paramétres dans une méthode Java; exple: une methode drawsolidline(int , int , byte [][], EGraphics, Aide scannet [ par anen ] Salut ,Je suis en train d'elaborer un projet(pfe) "NETBROWSER" ,utilisant Jpcap et un programme "scannet" qui me permet de capter tout les adresses ip conversion un tableau de byte en int [ par dunith ] bonjour;j'ai mis dans mon code:void decodeSeq(int[] buffer, TCmdQueue FileAttente, int iCodeSeq) {  int iNdexParam =0;  //correspond aux séquences(lig


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,312 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.