2

Java プロジェクト用の Python の構造体モジュールに似たものが必要です。整数 (およびおそらく float と double も) をバイト配列にパックしたいと思います。さらに、別の言語でコードを実行するハードウェアにこのデータを送信する必要があるため、エンディアンを選択し、一般的にこれがどのように行われるかを完全に制御したいと考えています。

4

2 に答える 2

4

ここから: 4 バイトを int に変換します。 java.nio.ByteBufferを使用できます。

于 2012-11-20T04:44:46.353 に答える
3

int var の場合、int の各バイトを取得して配列に入れることができます。そのように:

int info = 123456789;
byte [] data = new byte[100];
data[0] = (byte) ((info>>24) & 0xff);
data[1] = (byte) ((info>>16) & 0xff);
data[2] = (byte) ((info>>8)  & 0xff);
data[3] = (byte) ((info)     & 0xff);
int out = 0;
out = ((data[0]&0xff)<<24) | ((data[1]&0xff)<<16) | ((data[2]&0xff)<<8) | data[3]&0xff);
System.out.println("info " + info);
System.out.println("out  " + out);

float または double の場合、そのように直接行うことはできません。var を int に変換する必要があります。メソッドFloat.floatToRawIntBits()またはDouble.doubleToRawLongBits( )を使用して実行できます。

于 2012-11-20T04:48:08.540 に答える