鱼C论坛

 找回密码
 立即注册
查看: 1739|回复: 0

[技术交流] 在vs中编写代码把发送端发送的double类型的数据输出?

[复制链接]
发表于 2020-9-28 21:24:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1、定义一个浮点型变量a=11.1234 作为发送端,它向接收端发送的是16进制代码 72 F9 31 41
2、在接收端编写程序
int temp;
int count = start + 0;
temp =(unsigned char)buf[count + 3] << 24 | (unsigned char)buf[count + 2] << 16 | (unsigned char)buf[count + 1] << 8 | (unsigned char)buf[count + 0] << 0;
a = (float)&temp;
把发送端与接收端通信连接后,接收端会输出a=11.1234
/***************************************************/
但是如果发送端发送一个双精度浮点型变量b=11.123456789作为发送端,它向接收端发送的是16进制代码C7 72 6E BA 35 3F 26 40
在接收端编写程序
int temp;
int count = start + 0;
temp =(unsigned char)buf[count + 3] << 24 | (unsigned char)buf[count + 2] << 16 | (unsigned char)buf[count + 1] << 8 | (unsigned char)buf[count + 0] << 0;
b = (double)&temp;
把发送端与接收端通信连接后,接收端会输出b=-9.25596e+061并没有输出想要的值
/**********************************************************/
/**********************************************************/
float四个字节 double八个字节
按照八个字节解码进行编写:
temp =(unsigned char)buf[count + 7] << 56 | (unsigned char)buf[count + 6] << 48 |
                (unsigned char)buf[count + 5] << 40 | (unsigned char)buf[count + 4] << 32 |
                (unsigned char)buf[count + 3] << 24 | (unsigned char)buf[count + 2] << 16 |
                (unsigned char)buf[count + 1] << 8 | (unsigned char)buf[count + 0] << 0;还是不对
如何修改接收端的解码程序,可以输出一个双精度浮点数?
希望大佬们可以帮助,交流一下,关于我这个内容在网上找了好久也没有找到,修改的内容应该是temp的解码程序,希望大佬们能帮忙指点一下!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 03:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表