将4字节形式的float数据转换成float
通过对字节形式的数据进行封装通java提供的API方法进行转换
- 先确定byte形式的数据顺序(大端模式/小端模式)
- 将byte数据封装为ByteArrayInputStream 类型
- 再将ByteArrayInputStream 封装为DataInputStream 类型
调用DataInputStream 的readFloat方法获得float数据
readFloat方法读取四个输入字节并返回一个 float 值。
方法说明float readFloat() throws IOException
读取四个输入字节并返回一个 float 值。实现这一点的方法是:先使用与 readInt 方法完全相同的方式构造一个 int 值,然后使用与 Float.intBitsToFloat 方法完全相同的方式将此 int 值转换成一个 float 值。此方法适用于读取用接口 DataOutput 的 writeFloat 方法写入的字节。
返回:读取的 float 值。
抛出:
EOFException - 如果此流在读取所有字节之前到达末尾。
IOException - 如果发生 I/O 错误。
*示例代码如下:*
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
public class BytesToFloat {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
//float 类型值为123.456 以大端模式存储数据即高字节存于低地址,低字节存于高地址,小端模式反之
byte bytes[]={0x42,(byte) 0xf6,(byte)0xE9,0x79};
//创建一个 ByteArrayInputStream,使用bytes作为其缓冲区数组
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
//再将bais 封装为DataInputStream类型
DataInputStream dis=new DataInputStream(bais);
float flt=dis.readFloat();
dis.close();
System.out.println(flt);
}
}
本文介绍如何将4字节形式的float数据转换为实际的float值。通过确定字节顺序(大端/小端),使用ByteArrayInputStream和DataInputStream的readFloat方法,从字节序列中读取并转换为float类型。readFloat方法读取4个字节并根据intBitsToFloat方法将它们转换为float值。

1万+

被折叠的 条评论
为什么被折叠?



