Comment déterminer la valeur de chaque bit d'un byte ? [Java] - Java - Programmation
Marsh Posté le 22-02-2004 à 02:25:15
<benou>tu t'en sors pas à coup de & 0x00000001, & 0x00000010, etc ...<benou>
Marsh Posté le 22-02-2004 à 02:35:08
euh, je ne te suis pas trop, si cette solution permet de donner une valeur directement en binaire à mon byte ca m'irait pas mal, mais je ne comprends pas d'où sort le "&" ? Ca me donne du "illegal start of expression".
Marsh Posté le 22-02-2004 à 02:41:02
c'est le & binbaire
faut faire comme ca :
Code :
|
Marsh Posté le 22-02-2004 à 02:56:57
ReplyMarsh Posté le 22-02-2004 à 02:57:56
ah ok ! je vois, merci
Mais le 0x c pas seulement pour la notation en hexa ?
Et du coup, une autre question, comment puis-je construire mon byte "bit par bit". Je sais que si je donne la valeur 127 a mon byte, les 8 bits auront les valeurs suivantes : 0111 1111. Mais si je veux veux écrire dedans : 1111 1111, comment je fais ? Doit y avoir qque chose qui m'échappe...
encore merci
Marsh Posté le 22-02-2004 à 02:58:35
ReplyMarsh Posté le 22-02-2004 à 03:03:03
ReplyMarsh Posté le 22-02-2004 à 03:05:09
c ce qu'il me semblait, et g l'impression qu'on ne peut pas entrer directement une valeur en binaire, du coup, jsais pas comment faire Si qqun a une idée...
Marsh Posté le 22-02-2004 à 16:44:47
Jerome a écrit : c ce qu'il me semblait, et g l'impression qu'on ne peut pas entrer directement une valeur en binaire, du coup, jsais pas comment faire Si qqun a une idée... |
ben tu la rentre en hexa, ca revient au même ...
Code :
|
(ce coup ci j'ai testé )
Marsh Posté le 22-02-2004 à 17:51:01
yep, ca marche, merci bien
En fait je me prenais la tete pour pas grand chose, c t normal que la méthode Integer.toBinaryString() m'affiche 4 bytes (car Integer forcément ).
Une autre question donc, est-il possible de donner une valeur à un byte en Java en lui passant la valeur de chaque bits ? ou alors suis-je obligé je passer par un tableau de 8 caractères(représentant mon byte), le parcourir et calculer la valeur de mon byte correspondant ?
Marsh Posté le 22-02-2004 à 02:17:34
Bonjour à tous
Je me galère un peu sur un truc qui semble pourtant tout con.
En Java, le type byte est signé et va donc de -128 à 127.
Là je fais une appli qui récupère des données sur le port série. On a défini un format de trame (les trames font 20 bits et sont donc contenues dans 3 bytes). Je dois pouvoir déterminer la valeur de chaque bit de chaque byte (octet).
Et c là que ca se complique. Tant que je reçois des bytes dont le bit de poids le plus fort est à 0, ca ne pose pas de prbl (de 0 à 127 donc). Mais si ce dernier bit est à 1, je ne sais pas comment va se comporter java. En clair, si la valeur de l'octet est "1011 0111" par exemple, quelle sera la valeur en base 10 ? (sachant que ca ne peut pas être 183 puisqu'il faut tenir compte des négatifs).
J'ai voulu faire des tests pour comprendre comment ca se passait :
Et dans ce cas il code -20 sur 4 bytes au lieu d'un seul ! (alors que si je met un nombre compris entre 0 et 127 il le code bien sur un byte).
Pour résumer le tout (c peut être un peu confu mais g fais du mieux que g pu) : comment déterminer la valeur de chaque bit d'un byte ?
merci d'avance