通信协议中的数据类型的转换

来源:互联网 发布:变性人有快感吗 知乎 编辑:程序博客网 时间:2024/05/17 23:16

    在自定义通信协议中,如果采用字节流形式的的方式 ,经常会遇到很多种数值类型,例如整形,浮点型,日期型等。

    为了简化解析过程,有时因为存储空间的原因,经常会做一些类型的变换。

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,整体不到三个字节。



 其实不管哪种数据类型,为了简化设计,或者是减少存储空间,都应该仔细分析原始数据,然后才能设计出合理的通信协议。


原创粉丝点击