用byte []初始化的BitSet返回意外位

时间:2013-05-01 23:01:10

标签: java bitset

我正在为读写器课程编写测试。我有一个ByteBuffer作为阅读器的源,我用32个随机字节初始化它。然后我用ByteBuffer作为初始创建一个BitBuffer。

这是我的字节[]:

[-35, -15, 33, -71, -107, 4, -68, 60, -47, -116, -85, -3, -86, -16, 51, 77, 22, -47, -41, 64, 50, 38, -6, -110, 69, 87, -38, -101, 58, 15, 70, 66]

当我手动将其转换为位时,输出应为

1101 1101 1111 0001 0010 0001 1011 1001 1011 1001 1001 0101 0000 0100 1011 1100 ...

我希望设置BitSet位0,1,3,4,5,7 ......但是在调试显示中它会显示

{0, 2, 3, 4, 6, 7, 8, ....

我真的看不到这种匹配,但我不明白为什么。你能解释一下吗?

1 个答案:

答案 0 :(得分:0)

它似乎是将第0位作为最左边字节的最右边的位,向后迭代一个字节中的位,然后转发通过字节。

设置字节0,2,3,4,6和7:

7654 3210
1101 1101

然后设置第8位(左起第二个字节的最右边的位)......