2 votes

Traiter l'entrée comme un flux de bits

Je suis confronté à une situation où l'entrée que je dois lire est un flux de bits. Ainsi, l'entrée peut être de la forme suivante. La première ligne indique le nombre de bits que je vais recevoir, puis la ligne suivante est un flux de bits d'un seul coup.

10
011011110

Maintenant ce que j'essaie de faire, c'est de savoir s'il est possible de gérer l'entrée que je reçois comme un bit. Je sais que la classe http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html a une méthode nextByte() qui traite le jeton suivant de l'entrée comme un octet. Je me demandais s'il était possible de traiter l'entrée comme un tableau de bits.

1voto

Adam Sznajder Points 4770

En Java 7, vous avez une classe BitSet qui peut être utilisée de cette manière :

public static BitSet fromByte(byte b)  
{  
    BitSet bits = new BitSet(8);  
    for (int i = 0; i < 8; i++)  
    {  
       bits.set(i, (b & 1) == 1);  
       b >>= 1;  
     }  
     return bits;  
 }

Vous devriez obtenir byte à partir du flux, puis simplement appeler sur lui la méthode fromByte.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X