package net.tomp2p.rpc;
import java.util.BitSet;
public class RPCUtils {
// 1.7 version
// public static byte[] toByteArray(BitSet bitSet) {
// return bitSet.toByteArray();
// }
// 1.6 version
public static byte[] toByteArray(BitSet bitSet) {
byte[] bytes = new byte[(bitSet.length() + 7) / 8];
for (int i = 0; i < bitSet.length(); i++) {
if (bitSet.get(i)) {
//big endian
//bytes[bytes.length - i / 8 - 1] |= 1 << (i % 8);
//little endian
bytes[i/8] |= 1 << (7 - i % 8);
}
}
return bytes;
}
// 1.7 version
// public static BitSet fromByteArray(byte[] bytes) {
// return BitSet.valueOf(bytes);
// }
// 1.6 version
public static BitSet fromByteArray(byte[] bytes) {
BitSet bits = new BitSet();
for (int i = 0; i < bytes.length * 8; i++) {
//big endian
//if ((bytes[bytes.length - i / 8 - 1] & (1 << (i % 8))) > 0) {
//little endian
if ((bytes[i/8] & (1 << (7 - i % 8))) > 0) {
bits.set(i);
}
}
return bits;
}
}