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;
}
しかし、ディスカッションフォーラムでは、計算ごとに1ビットが失われるため、この方法ではすべてのビットを取得できないことがわかりました。これは本当ですか?上記の方法を変更する必要がありますか?