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

本文共 811 字,大约阅读时间需要 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地址:

欢迎补充

转载于:https://www.cnblogs.com/MikeZhang/p/floatNetworkTrans20180320.html

你可能感兴趣的文章
No input file specified
查看>>
获取字符串中出现次数最多的字符
查看>>
Selenium3自动化问题一:selenium3在火狐浏览器执行driver.quit()报错2052解决方案
查看>>
hdoj1754 线段树--单点更新
查看>>
算法题之一(数字二进制形式中1的个数)
查看>>
python学习--去除空格
查看>>
3D渲染管线的概述
查看>>
数据挖掘看问题不能太局部,还要更全面一些
查看>>
HDU 3395 Special Fish
查看>>
Arduino 数字函数总结
查看>>
开店选址需经过的五道坎
查看>>
P1020 导弹拦截
查看>>
C# 对文本文件的几种读写方法总结
查看>>
git仓库使用
查看>>
数据结构-循环顺序队列&链队列
查看>>
xlistview(头xml)
查看>>
zencart常用表单模块
查看>>
Magic Zoom 使用说明
查看>>
杭电1114
查看>>
各类排序模版(计数排序、基数排序、桶排序、冒泡排序、选择排序、插入排序、希尔排序、归并排序、原地归并排序、快速排序、堆排序)...
查看>>