如何将位写入一个字节?

时间:2012-08-26 00:05:18

标签: java byte jdk1.6 bitset

我目前有16位要设置为变量(2个单独的字节)。我已经使用BitSet对象来保存我的位,而在Java 1.7中有一个toByteArray()方法,我需要一些适用于早期Java版本的东西。它不需要使用BitSet,但我更喜欢它(如果可能的话)。

如果有人能告诉我如何将字母01101011写入一个字节,我认为这对我有用。谢谢!

1 个答案:

答案 0 :(得分:1)

你可以使用这段代码来做到这一点:

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;
}

所以要转换两个字节,你会做:

BitSet b = ....;
byte b1 = Helper.convert(b, 0);
byte b2 = Helper.convert(b, 8);