2012-11-20 28 views
25

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

+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(字节,偏移量,长度) –

2

试试这个:作为公认的

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