Question

I currently have 16 bits I want to set to variables (2 separate bytes). I've used the BitSet object to hold my bits and while in Java 1.7 there is a toByteArray() method, I need something that works on earlier versions of Java. It doesn't need to use BitSet, but I would prefer that it does (if possible).

If someone could tell me how to write something like 01101011 to a byte, I think that would help me enough. Thanks!

Was it helpful?

Solution

You can use this piece of code to do that:

public static byte convert(BitSet bits, int offset) {
  byte value = 0;
  for (int i = offset; (i < bits.length() && ((i + offset) < 8)) ; ++i) {
    value += bits.get(i) ? (1 << i) : 0;
  }
  return value;
}

So to convert two bytes you will do:

BitSet b = ....;
byte b1 = Helper.convert(b, 0);
byte b2 = Helper.convert(b, 8);
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top