从位集数组转换为字节数组
我拿起了这个例子,它将BitSet转换为Byte数组。
public static byte[] toByteArray(BitSet bits) {
byte[] bytes = new byte[bits.length()/8+1];
for (int i=0; i<bits.length(); i++) {
if (bits.get(i)) {
bytes[bytes.length-i/8-1] |= 1<<(i%8);
}
}
return bytes;
}
但是在讨论论坛中,我看到通过这种方法我们不会获得所有位,因为我们每次计算将失去一位。这是真的吗?我们是否需要修改上述方法?