java如何将 byte [4] 转换到float
7个回答
展开全部
推荐答案是错误地把字节等同与字符。
byte b[]={0x41,(byte) 0xc8,0,0};
//方法1 流输入,适用于ME/SE环境
//默认大端数,如果小端数,可以先翻转数组
DataInputStream dis=new DataInputStream(new ByteArrayInputStream(b));
float f=dis.readFloat();
dis.close();
System.out.println(f);
//方法2 缓存输入,适用于SE/EE环境
ByteBuffer buf=ByteBuffer.allocateDirect(4); //无额外内存的直接缓存
//buf=buf.order(ByteOrder.LITTLE_ENDIAN);//默认大端,小端用这行
buf.put(b);
buf.rewind();
float f2=buf.getFloat();
System.out.println(f2);
都将显示读出来的浮点数25.0
byte b[]={0x41,(byte) 0xc8,0,0};
//方法1 流输入,适用于ME/SE环境
//默认大端数,如果小端数,可以先翻转数组
DataInputStream dis=new DataInputStream(new ByteArrayInputStream(b));
float f=dis.readFloat();
dis.close();
System.out.println(f);
//方法2 缓存输入,适用于SE/EE环境
ByteBuffer buf=ByteBuffer.allocateDirect(4); //无额外内存的直接缓存
//buf=buf.order(ByteOrder.LITTLE_ENDIAN);//默认大端,小端用这行
buf.put(b);
buf.rewind();
float f2=buf.getFloat();
System.out.println(f2);
都将显示读出来的浮点数25.0
展开全部
你好:
//方法1 流输入,适用于ME/SE环境
//默认大端数,如果小端数,可以先翻转数组
DataInputStream dis=new DataInputStream(new ByteArrayInputStream(b));
float f=dis.readFloat();
dis.close();
System.out.println(f);
//方法2 缓存输入,适用于SE/EE环境
ByteBuffer buf=ByteBuffer.allocateDirect(4); //无额外内存的直接缓存
//buf=buf.order(ByteOrder.LITTLE_ENDIAN);//默认大端,小端用这行
buf.put(b);
buf.rewind();
float f2=buf.getFloat();
System.out.println(f2);
---
都将显示读出来的浮点数25.0
//方法1 流输入,适用于ME/SE环境
//默认大端数,如果小端数,可以先翻转数组
DataInputStream dis=new DataInputStream(new ByteArrayInputStream(b));
float f=dis.readFloat();
dis.close();
System.out.println(f);
//方法2 缓存输入,适用于SE/EE环境
ByteBuffer buf=ByteBuffer.allocateDirect(4); //无额外内存的直接缓存
//buf=buf.order(ByteOrder.LITTLE_ENDIAN);//默认大端,小端用这行
buf.put(b);
buf.rewind();
float f2=buf.getFloat();
System.out.println(f2);
---
都将显示读出来的浮点数25.0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
假如你给的byte[4] 的变量名为 b
String nums=new String(b);//b为一个数组
float myFloat=Float.parseFloat(nums);
System.out.println(myFloat);
此外,在java中,正常的情况下是不使用float,而是使用double,如果你有使用float这个习惯,建议改过来
String nums=new String(b);//b为一个数组
float myFloat=Float.parseFloat(nums);
System.out.println(myFloat);
此外,在java中,正常的情况下是不使用float,而是使用double,如果你有使用float这个习惯,建议改过来
追问
哦,我不是字符串型的,我读的是二进制的文件,每四个字节为一个float,但是我不知道如何将byte[]转为float
追答
你还没理解 String nums=new String(b);//b为一个数组
这里的b 就是你读出来的byte[] b
String nums=new String(b);//b为一个数组
的意思是,把你给的byte[]作为参数构造一个String
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先string,再int
byte[4] by= {'1','2','4','6'}
string str=b.tostring();
int int_num=Integer.PaseInt(str);
float float_num=(float)int_num;
很详细了吧,如果不想经过int这一步的话可以直接使用float的转换,这样不会丢失数据(如果有小数的话)。
byte[4] by= {'1','2','4','6'}
string str=b.tostring();
int int_num=Integer.PaseInt(str);
float float_num=(float)int_num;
很详细了吧,如果不想经过int这一步的话可以直接使用float的转换,这样不会丢失数据(如果有小数的话)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
package ex1;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;
public class bytetofloat {
public static void main(String[] args) throws IOException {
byte[] b = {0x41,(byte) 0xc8,0,0};
DataInputStream dis=new DataInputStream(new ByteArrayInputStream(b));
float f=dis.readFloat();
dis.close();
System.out.println(f);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询