+ -
当前位置:首页 → 问答吧 → 怎样将浮点数放入通信帧中?

怎样将浮点数放入通信帧中?

时间:2011-12-06

来源:互联网

现在有6个浮点数,需要放入通信帧中,通信帧格式如下:



6个浮点数对应X,Y,Z,X1,Y1,Z1
请问按照帧格式,如果处理浮点数?谢谢!

作者: youhao1999   发布时间: 2011-12-06

感觉不可能。float型的都可能放不下。

将浮点型的数据写文件或传输的时间,一般都转为字符型,否则对精度有影响。

作者: havedown   发布时间: 2011-12-06

VC中,双精度浮点数占8个字节,单精度浮点数占4个字节。。。3个字节哪能放得下。。。

作者: uC_Fly   发布时间: 2011-12-06

那要看对方是否支持浮点数,如果支持的话,你就使用memcpy,把他们拷贝进去

memcpy( buf + offset, &x, sizeof( double ) );

如果不支持,就要转换进去

unsigned int xx = ( int )x;
memcpy( buf + offset, &xx, sizeof( unsigned int ) );

作者: jennyvenus   发布时间: 2011-12-06

这是什么协议?unsigned int 也要4个字节吧?为什么会是3个字节?

作者: erdgzw   发布时间: 2011-12-06

我做过浮点数通信,需要4个字节,只要按规定的字节存储顺序存入就可以

作者: erdgzw   发布时间: 2011-12-06

三个字节,怀疑怎么写进去。。。

作者: shen_wei   发布时间: 2011-12-06

一般4字节,两字节整数,两字节小数。
这是你们自定义的吧,就用整数2字节,小数1字节,估计小数也就是两位(0.01位精度)

作者: echoyin59   发布时间: 2011-12-06

引用 7 楼 echoyin59 的回复:
一般4字节,两字节整数,两字节小数。
这是你们自定义的吧,就用整数2字节,小数1字节,估计小数也就是两位(0.01位精度)

+1

作者: Delphigis   发布时间: 2011-12-06

3个字节怎么也放不进去把

作者: sparrow429   发布时间: 2011-12-06

可以用7楼的方法,取整数部分放入一个16位int型数据中,小数部分只取两位精度也转换成整数,放入一个8位字节当中。读取的时候也要再组合成一个浮点数。

作者: erdgzw   发布时间: 2011-12-06

指针操作

作者: czydxj   发布时间: 2011-12-06