1

Javaで変数を単一バイトに分割するにはどうすればよいですか? たとえば、C++ の次のスニペットがあります。

    unsigned long someVar;
    byte *p = (byte*)(void*) someVar; // byte being typedef unsigned char (from 0 to 255)

    byte *bytes = new byte[sizeof(someVar)];

    for(byte i = 0;i<sizeof(someVar);i++)
    {
        bytes[i] = *p++;
    }

    .... //do something with bytes

Javaで同じことを達成したいのですが、明らかな回避策が見つからないようです。

4

2 に答える 2

3

ByteBufferクラスでそれを行うには 2 つの方法があります。1 つは、新しいバイト配列を動的に作成することです。

long   value = 123;
byte[] bytes = ByteBuffer.allocate(8).putLong(value).array();

もう 1 つは、既存の配列に書き込むことです。

long   value = 123;
byte[] bytes = new byte[8];

ByteBuffer.wrap(bytes).putLong(value);

// bytes now contains the byte representation of 123.
于 2013-04-01T20:51:30.427 に答える