如何将位写入字节?

mfpqipee  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(399)

我目前有16位我想设置为变量(2个单独的字节)。我已经使用bitset对象来保存我的位,而在Java1.7中有一个tobytearray()方法,我需要在java的早期版本上工作的东西。它不需要使用位集,但是我更喜欢它(如果可能的话)。
如果有人能告诉我如何把01101011这样的东西写进一个字节,我想这对我就足够了。谢谢!

bihw5rsg

bihw5rsg1#

您可以使用以下代码:

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

相关问题