java如何将 byte [4] 转换到float

 我来答
百度网友9308069
推荐于2016-01-17 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:1949万
展开全部
推荐答案是错误地把字节等同与字符。

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
咎慧语05X
2015-12-10 · TA获得超过861个赞
知道小有建树答主
回答量:636
采纳率:25%
帮助的人:204万
展开全部
你好:

//方法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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Stale331x
2012-10-22 · TA获得超过1299个赞
知道小有建树答主
回答量:1276
采纳率:33%
帮助的人:839万
展开全部
假如你给的byte[4] 的变量名为 b
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
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
micolbestar
2012-10-22
知道答主
回答量:19
采纳率:0%
帮助的人:13.4万
展开全部
先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的转换,这样不会丢失数据(如果有小数的话)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
新叶给力
推荐于2018-05-07 · TA获得超过323个赞
知道小有建树答主
回答量:258
采纳率:50%
帮助的人:69.3万
展开全部
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);
  
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式