1

現在、変数に設定したい16ビット(2つの別々のバイト)があります。BitSetオブジェクトを使用してビットを保持しましたが、Java 1.7にはtoByteArray()メソッドがありますが、以前のバージョンのJavaで機能するものが必要です。BitSetを使用する必要はありませんが、(可能であれば)使用することをお勧めします。

誰かが01101011のようなものをバイトに書く方法を教えてくれれば、それで十分だと思います。ありがとう!

4

1 に答える 1

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

したがって、2バイトを変換するには、次のようにします。

BitSet b = ....;
byte b1 = Helper.convert(b, 0);
byte b2 = Helper.convert(b, 8);
于 2012-08-26T00:11:10.020 に答える