我正处理的情况是,我必须读取的输入是一串位。所以输入可以是以下形式。第一行告诉我将接收的位数,然后下一行是一位一行的位流。
10
011011110
现在我正在尝试的是它是否可以处理我收到的输入。我知道http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html类有一个方法nextByte(),它将输入的下一个标记作为一个字节处理。我想知道是否可以将输入作为位数组处理。
答案 0 :(得分: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
方法。