Java BitSet size() 行为
Java BitSet size() behavior
我正计划使用 BitSet 来操作 byte[] 中的位,因为存在一个库。
但是,似乎在从一个byte[]创建一个BitSet之后,BitSet的最小大小是64,否则它最终为零。
有没有要求必须有8个字节?
此外,等于零的 byte[] 将始终以零大小显示。我假设它仍然会输出字节数组的大小?
即。
BitSet bs1 = BitSet.valueOf(new byte[] {0, 0, 0, 0, 0, 0, 1}); // bs1.size() == 64
BitSet bs2 = BitSet.valueOf(new byte[] {0, 0, 0, 0, 0, 0, 0, 1}); // bs2.size() == 64
BitSet bs3 = BitSet.valueOf(new byte[] {0, 0, 0, 0, 0, 0, 0, 0, 1}); // bs3.size() == 128
BitSet bs4 = BitSet.valueOf(new byte[] {0, 0, 0, 0, 0, 0, 0, 0, 0}); // bs4.size() == 0
System.out.print(bs1.size() + " " + bs2.size() + " " + bs3.size() + " " + bs4.size());
我可能最终会编写自己的函数,但我很好奇为什么会这样。
谢谢!
我正计划使用 BitSet 来操作 byte[] 中的位,因为存在一个库。
但是,似乎在从一个byte[]创建一个BitSet之后,BitSet的最小大小是64,否则它最终为零。 有没有要求必须有8个字节? 此外,等于零的 byte[] 将始终以零大小显示。我假设它仍然会输出字节数组的大小?
即。
BitSet bs1 = BitSet.valueOf(new byte[] {0, 0, 0, 0, 0, 0, 1}); // bs1.size() == 64
BitSet bs2 = BitSet.valueOf(new byte[] {0, 0, 0, 0, 0, 0, 0, 1}); // bs2.size() == 64
BitSet bs3 = BitSet.valueOf(new byte[] {0, 0, 0, 0, 0, 0, 0, 0, 1}); // bs3.size() == 128
BitSet bs4 = BitSet.valueOf(new byte[] {0, 0, 0, 0, 0, 0, 0, 0, 0}); // bs4.size() == 0
System.out.print(bs1.size() + " " + bs2.size() + " " + bs3.size() + " " + bs4.size());
我可能最终会编写自己的函数,但我很好奇为什么会这样。
谢谢!