概述
在自定义通信协议中,如果采用字节流形式的的方式,经常会遇到很多种数值类型,例如整形,浮点型,日期型等。
为了简化解析过程,有时因为存储空间的原因,经常会做一些类型的变换。
1特别大的整数
例如,传输的数据在5000左右,则可以在发送端发送数据时,先减去5000,得到一个比较小的数据,发送这个比较小的数据,在接收端,再加上5000.
例如如果数据都在5000至5100之间,减去5000后,则数据就在0至100之间,只需要7个bit就可以完成,不到一个字节。相反如果需要发送原数据,则至少需要13个bit
(因为1024*4<5100<1024*8)
2浮点数
浮点数一般都会转化为整数进行发送,思想和传输特别大的整数思想相同。例如:把0.2*10=2在发送端乘以某一个指定的数据,到接收端后在除以指定的数据。以此来简化数据的处理。
3时间
如果只需要传输小时,分,秒,可以把时间全部换成秒传递一个整数,也可以分成三部分分别传输,小时24小时制占用5bit,分钟,秒分别占用6bit,整体不到三个字节。
其实不管哪种数据类型,为了简化设计,或者是减少存储空间,都应该仔细分析原始数据,然后才能设计出合理的通信协议。
最后
以上就是鲤鱼含羞草为你收集整理的通信协议中的数据类型的转换的全部内容,希望文章能够帮你解决通信协议中的数据类型的转换所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复