博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浮点数网络传输
阅读量:6114 次
发布时间:2019-06-21

本文共 740 字,大约阅读时间需要 2 分钟。

操作系统 : CentOS7.3.1611_x64

gcc版本 :4.8.5

Python 版本 : 2.7.5

思路如下 :

1、将浮点数a通过内存拷贝,赋值给相同字节的整型数据b;

2、将b转换为网络字节序变量c并发送到服务端;

3、服务端接收c并将c转换为主机字节序变量d;

4、将整型数据d通过内存拷贝,赋值给相同字节的浮点数据e;

至此,浮点数网络传输完成。

C示例代码:

#define htonl64 htobe64#define ntohl64 be64tohuint64_t htonf64(double dvalue){    uint64_t ulltmp = 0;    memcpy(&ulltmp,&dvalue,8);    ulltmp = htonl64(ulltmp);    return ulltmp;}double ntohf64(uint64_t ulvalue){    uint64_t ulltmp = 0;    double ret = 0.0;    ulltmp = ntohl64(ulvalue);    memcpy(&ret,&ulltmp,8);    return ret;}

完整示例代码如下:

python示例代码 :

def htonfl(f):    s = struct.pack('d',f)    return struct.unpack('!Q',s)[0]def fltonl(v):    s = struct.pack('!Q',v)    return struct.unpack('d',s)[0]

完整示例代码如下:

好,就这些了,希望对你有帮助。

本文github地址:

欢迎补充

转载地址:http://slcka.baihongyu.com/

你可能感兴趣的文章
Response. AppendHeader使用大全及文件下载.net函数使用注意点(转载)
查看>>
Wait Functions
查看>>
代码描述10313 - Pay the Price
查看>>
jQuery最佳实践
查看>>
centos64i386下apache 403没有权限访问。
查看>>
vb sendmessage 详解1
查看>>
jquery用法大全
查看>>
Groonga 3.0.8 发布,全文搜索引擎
查看>>
PC-BSD 9.2 发布,基于 FreeBSD 9.2
查看>>
网卡驱动程序之框架(一)
查看>>
css斜线
查看>>
Windows phone 8 学习笔记(3) 通信
查看>>
重新想象 Windows 8 Store Apps (18) - 绘图: Shape, Path, Stroke, Brush
查看>>
Revit API找到风管穿过的墙(当前文档和链接文档)
查看>>
Scroll Depth – 衡量页面滚动的 Google 分析插件
查看>>
Windows 8.1 应用再出发 - 视图状态的更新
查看>>
自己制作交叉编译工具链
查看>>
Qt Style Sheet实践(四):行文本编辑框QLineEdit及自动补全
查看>>
[物理学与PDEs]第3章习题1 只有一个非零分量的磁场
查看>>
深入浅出NodeJS——数据通信,NET模块运行机制
查看>>