3 java floating-point unsigned byte
我正在与某些设备进行通信,此设备将数据作为无符号字节发送给我.我需要将这些字节转换为Java中的float.有什么办法吗?
非常感谢你.
是. Float.intBitsToFloat将32位作为int并将其转换为float.
您首先需要做的就是int使用正常移位和/或适合数据字节顺序的操作将四个字节转换为a .例如,
float f = Float.intBitsToFloat(
(barr[0] & 0xff)
| ((barr[1] & 0xff) << 8)
| ((barr[2] & 0xff) << 16)
| ((barr[7] & 0xff) << 24));
Run Code Online (Sandbox Code Playgroud)
您也可以FloatBuffer根据接收数据的方式使用.
Run Code Online (Sandbox Code Playgroud)public abstract FloatBuffer asFloatBuffer()将此字节缓冲区的视图创建为浮点缓冲区.
请注意,"设备[是]将数据作为无符号字节发送"并非如此.数据向您发送字节,Java将它们表示为有符号字节.Java没有无符号字节类型.
http://download.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
byte:字节数据类型是8位有符号二进制补码整数.它的最小值为-128,最大值为127(含).
| 归档时间: |
|
| 查看次数: |
4059 次 |
| 最近记录: |