Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用字节[]初始化的位集返回意外位_Java_Bitset - Fatal编程技术网

Java 用字节[]初始化的位集返回意外位

Java 用字节[]初始化的位集返回意外位,java,bitset,Java,Bitset,我正在为一个bit阅读器类编写一个测试。我有一个ByteBuffer,它是读卡器的源代码,我用32个随机字节初始化它。然后我创建一个以ByteBuffer作为初始值的位缓冲区 这是我的字节[]: [-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] 当我手动

我正在为一个bit阅读器类编写一个测试。我有一个ByteBuffer,它是读卡器的源代码,我用32个随机字节初始化它。然后我创建一个以ByteBuffer作为初始值的位缓冲区

这是我的字节[]:

[-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 ...
我希望位集位0、1、3、4、5、7。。。设置,但在调试显示中显示

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

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

它似乎是将第0位作为最左边字节的最右边的位,向后迭代一个字节中的位,然后向前遍历字节

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

7654 3210
1101 1101

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

现在有意义了。但还是很意外。