1

JAVA では、メソッドgetByte()は、Int、ブール値、およびすべてのプリミティブ データ型に対して定義されていません (私は信じています)。

  • Boolean 変数や Int 変数をメソッドで動作させる方法はありますか。
  • または、変数も変更することをお勧めするデータ型は何ですか。
4

2 に答える 2

0

ByteBufferを使用して、プリミティブをに変換しbyte[]たり、その逆を行うことができます。

public static byte[] toByteArray(int value) {
    ByteBuffer bb = ByteBuffer.allocate(4).order(ByteOrder.nativeOrder());
    return bb.putInt(value).array();
}

public static int toInteger(byte[] bytes) {
    ByteBuffer bb = ByteBuffer.wrap(bytes).order(ByteOrder.nativeOrder());
    return bb.getInt();
}
于 2012-10-26T10:32:55.270 に答える
0

通常、バイナリ ストリームに書き込む場合は、個々のバイトのみが必要です。これが目的である場合は、DataOutputStreamネットワーク/ビッグエンディアンを OutputStream にByteBuffer書き込むか、リトルエンディアンが必要な場合、または NIO または NIO2 に書き込むことをお勧めします。

下位 8 ビットを取得するなどのビット単位の操作を実行する必要がある場合は、マスク&または との組み合わせを使用し>>>て、他のビットを取得できます。どの操作を使用するかは、これが何のために必要かによって異なります。

于 2012-10-26T10:37:12.367 に答える