通信协议中的数据类型的转换
来源:互联网 发布:变性人有快感吗 知乎 编辑:程序博客网 时间: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,整体不到三个字节。
其实不管哪种数据类型,为了简化设计,或者是减少存储空间,都应该仔细分析原始数据,然后才能设计出合理的通信协议。
- 通信协议中的数据类型的转换
- sql server2000中的数据类型转换的优先级
- access 中的文本到数据类型的转换
- VC中的各种数据类型之间的转换
- java中的基本数据类型之间的转换
- Java中的byte[]数据类型与其他各类数据类型的转换
- SQL中的数据类型到VC中数据类型的转换.
- java中的数据类型和数据类型间的转换
- java中的数据类型转换
- VC中的数据类型转换
- EVC中的数据类型转换
- c++中的数据类型转换
- JAVA中的数据类型转换
- SQL 中的数据类型转换
- C#中的数据类型转换
- C#中的数据类型转换
- qt 中的数据类型转换
- IOS中的数据类型转换
- 电磁兼容测试实质
- 求城市A到B的路径数
- getopt函数
- Using pthread in Android
- android笔记--Intent和IntentFilter详解
- 通信协议中的数据类型的转换
- 作为一个程序员,我常去的网站
- phpdoc
- org.eclipse.ui.PartInitException: 编辑器初始化失败:位置不正确
- TypeError: dist must be a Distribution instance
- [小说]魔王冢(50)身份
- Scripts:执行双网卡绑定
- memcached命令行参数
- main.h