浮点数/float/double 是否需要考虑网络字节序的问题
来源:互联网 发布:u8软件 编辑:程序博客网 时间:2024/06/04 18:14
在网络上传输数据时,对整数,我们使用转换为网络字节序的方法,来保证跨平台传输数据时不会出现字节顺序问题导致的解析错误,但是对浮点数,是否也需要这样做?
在socket编程中,只有针对整型的字节顺序转换函数,例如htonl(),htons()等,浮点数怎么办?
这里先转载一段网上摘取的文章:
_______________________________________________________________________________
问:为什么在网络编程中,需要考虑字节序的问题时,对于double、float以及字符串等数据类型不需要考虑主机序列和网络序列之间的转换?
答:float和double与CPU无关。一般来说,编译器是按照IEEE标准解释的,即把float/double看作4/8个字符的数组进行解释。因此,只要编译器是支持IEEE浮点标准的,就不需要考虑字节顺序。
_______________________________________________________________________________
大家注意到,这里说不需要转换,也是有条件的。我没有考证过例外情况的存在比例,但是我相信在绝大部分情况下,编译器都是符合IEEE标准的。
如果你实在不放心,可以采取下面两种办法:
(1)在保证不超过int范围的情况下,将浮点数乘以100(或1000,10000,视所需精度随你定)转换为整数传输,在接收端再除以100,得到浮点数。
(2)将浮点数转换为字符串传输,由于字符串是一个字节一个字节的流,就不会有字节顺序的问题了。
0 0
- 浮点数/float/double 是否需要考虑网络字节序的问题
- 浮点数/float/double 是否需要考虑网络字节序的问题
- 浮点数/float/double 是否需要考虑网络字节序的问题
- 浮点数/float/double 是否需要考虑网络字节序的问题
- 如何处理浮点数(float, double)的精度问题
- float double浮点数不精确问题
- 浮点数float和double的精度
- 如何比较浮点数(float&double)是否相等?
- 浮点数 float和double
- 关于Double(float)浮点数
- 浮点数(float)和双精度(double)截断问题
- java中float/double浮点数的计算失精度问题
- java float double精度为什么会丢失?浅谈java的浮点数精度问题
- java float double精度为什么会丢失?浅谈java的浮点数精度问题
- java中float/double浮点数的计算失精度问题
- Java浮点数float和double精确计算的精度误差问题总结
- Java浮点数float,bigdecimal和double精确计算的精度误差问题总结
- Java浮点数float和double精确计算的精度误差问题总结
- arm开发板 Illegal instruction
- hadoop hdfs dfsadmin 介绍
- 【BZOJ1093】【ZJOI2007】最大半连通子图 强连通分量缩点+sort去重边+拓扑排序
- iOS8新增的API
- MFC中CString类字符串与长整型、浮点型、字符数组char数据之间的相互转换
- 浮点数/float/double 是否需要考虑网络字节序的问题
- MOL4D V1.0使用说明书
- 使用MapWinGis控件在桌面应用程序中显示地图
- 我的家乡
- python计算阶乘
- 栈-迷宫问题
- 飞回家撒活动叫啥好的打算
- strategy design pattern and composite design pattern
- 天声人語 20150111