35

float 値を表す 4 バイトの配列があります。バイトはネットワークから読み取られます (例: 3e 3f e3 a0)。Javaでバイト[]からフロートに変換するにはどうすればよいですか?

4

2 に答える 2

80

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

byte[] bytes = { }
float f = ByteBuffer.wrap(bytes).order(ByteOrder.LITTLE_ENDIAN).getFloat();
于 2012-11-20T09:08:05.900 に答える
8

これを試して:

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

于 2015-12-11T01:20:13.933 に答える