如何在java中将4字节数组转换为float

Aar*_*ron 29 java type-conversion char

我有一个4字节的数组,代表一个浮点值.从网络读取字节,例如3e 3f e3 a0.如何将它从byte []转换为java中的float?

Pet*_*rey 65

在Java中,a char是16位.如果你的意思是你有一个4个byte值的小端字节顺序,你需要转换为a,float你可以使用ByteBuffer.

byte[] bytes = { }
float f = ByteBuffer.wrap(bytes).order(ByteOrder.LITTLE_ENDIAN).getFloat();
Run Code Online (Sandbox Code Playgroud)

  • 还有偏移量和长度的版本:ByteBuffer.wrap(字节,偏移量,长度) (7认同)

小智 7

尝试这个:

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

  • 异或?你不是说OR吗? (3认同)