2012-11-20 25 views
25

私は浮動小数点値を表す4バイトの配列を持っています。バイトはネットワークから読み込まれます(3e 3f e3 a0など)。どのようにバイト[]からJavaで浮動小数点に変換できますか?4バイト配列をJavaでfloatに変換する方法

+4

ピーターズ答えがマークする必要があります。 –

+0

すべきか?ピーターの答えは、ザビエルのものではない間にオブジェクトを構築する必要があります。 – plugwash

答えて

54

Javaの場合charは16ビットです。リトルエンディアンのバイトオーダーで4 byteの値があり、floatに変換する必要がある場合は、ByteBufferを使用できます。

byte[] bytes = { } 
float f = ByteBuffer.wrap(bytes).order(ByteOrder.LITTLE_ENDIAN).getFloat(); 
+0

確かに非常に有用なクラスです。 –

+6

オフセットと長さを持つバージョンもあります:ByteBuffer.wrap(bytes、offset、length) –

2

これを試してみてください:受け入れたとして

float foo = Float.intBitsToFloat(buffer[n]^buffer[n+1]<<8^buffer[n+2]<<16^buffer[n+3]<<24);

関連する問題