返回信息流用C语言发出的报文中包含的float在java中读取,网上的方法都说是从流中readInt然后Float.intBitsToFloat 为什么我这还是解析不出要的数字
这是一条镜像帖。来源:北邮人论坛 / java / #24408同步于 2013/3/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
关于java中读取c程序发来的报文
wuzhifan2
2013/3/8镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
4字节表示的一个小数,不是float吗?反正用C可以解析出来
【 在 nuanyangyang 的大作中提到: 】
: 报文中怎么能包含float呢?难道不是字节流吗?
看看这个吧。但是要先了解IEEE754,字节序(byte order)这些概念。
http://docs.oracle.com/javase/6/docs/api/java/nio/ByteBuffer.html
【 在 wuzhifan2 的大作中提到: 】
: 4字节表示的一个小数,不是float吗?反正用C可以解析出来
ByteBuffer 用了不行,字节序也没问题,c和java好像对float的处理有些差异,还没找到到底是差在哪
【 在 nuanyangyang 的大作中提到: 】
: 看看这个吧。但是要先了解IEEE754,字节序(byte order)这些概念。
: http://docs.oracle.com/javase/6/docs/api/java/nio/ByteBuffer.html
:
比如网络字节是 {0x00, 0x6f, 0x9c, 0xe1}吧, C中得7314657.0000,java里得1.0250018E-38
【 在 ntvrnd 的大作中提到: 】
: 发来的都是二进制数据,读进来转换一下字节序即可。