2012-11-20 51 views
25

Tôi có một mảng 4 byte đại diện cho một giá trị float. Các byte được đọc từ mạng, ví dụ, 3e 3f e3 a0. Làm thế nào tôi có thể chuyển đổi nó từ byte [] để nổi trong java?Cách chuyển đổi mảng 4 byte thành float trong java

+4

Peters câu trả lời nên được đánh dấu là chấp nhận. –

+0

Có nên không? Câu trả lời của Peter đòi hỏi phải xây dựng một đối tượng trong khi Xavier thì không. – plugwash

Trả lời

54

Trong Java, char là 16 bit. Nếu bạn có nghĩa là bạn có 4 byte giá trị theo thứ tự byte nhỏ mà bạn cần chuyển đổi thành một số float, bạn có thể sử dụng ByteBuffer.

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

Lớp học rất hữu ích thực sự. –

+6

Ngoài ra còn có phiên bản có độ dài và độ lệch: ByteBuffer.wrap (byte, offset, chiều dài) –

2

Hãy thử điều này:

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

Các vấn đề liên quan