2

我正在处理一种情况,即我必须读取的输入是比特流。所以输入可以是以下形式。第一行告诉我将要接收的比特数,然后下一行是一次性的比特流。

10
011011110

现在我正在尝试的是是否可以处理我收到的输入。我知道http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html类有一个方法 nextByte() 将输入的下一个标记作为字节处理。我想知道是否可以将输入作为位数组处理。

4

1 回答 1

1

在 Java 7 中,您有一个BitSet可以这样使用的类:

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;  
 }

您必须byte从流中获取,然后简单地调用它的fromByte方法。

于 2012-09-01T12:06:23.197 回答