当前位置: 首页 > news >正文

唐山 建设工程信息网站企业设计方案

唐山 建设工程信息网站,企业设计方案,苏州新闻,网站功能需求列表一、概述 FAST协议里不同的数据类型在编码时有非常大的区别#xff0c;比如整数只需要将二进制数据转为十进制即可#xff0c;而浮点数则需要先传小数点位数#xff0c;再传一个整数#xff0c;最后将二者结合起来才是最终结果。本篇使用openfast自设了一些数据并编码成FA…一、概述 FAST协议里不同的数据类型在编码时有非常大的区别比如整数只需要将二进制数据转为十进制即可而浮点数则需要先传小数点位数再传一个整数最后将二者结合起来才是最终结果。本篇使用openfast自设了一些数据并编码成FAST数据再对这些FAST数据进行人工解码以图看懂FAST协议是如何传递不同类型的数据。 二、数据类型 看接口文档存在以下类型的数据 数据类型 说明 备注 ascii ASCII字符串类型 byteVector 字节向量类型 decimal 浮点数类型 int16 有符号整数 都是有符号整数区别仅在于取值范围 int32 有符号整数 int64 有符号整数 int8 有符号整数 string 字符串 uInt16 无符号整数 都是无符号整数区别仅在于取值范围 uInt32 无符号整数 uInt64 无符号整数 uInt8 无符号整数 浓缩一下 数据类型 说明 备注 ascii ASCII字符串类型 string 字符串 byteVector 字节向量类型 decimal 浮点数类型 int 有符号整数 uInt 无符号整数 三、不同数据类型的编码与解码 1、ASCII字符串类型 使用上述代码输出为 msg111 - {123, 234} outByteStr11100000,11111011,00110010,00110011,10110100, 二进制数据解析如下 二进制数 解码过程 解码结果 11100000 PMap 11111011 01111011123 123 00110010,00110011,10110100 0011001050’2’ 0011001151’3’ 0011010052’4’ 124 2、String字符串类型 使用上述代码输出为 msg111 - {123, 234} outByteStr11100000,11111011,00110010,00110011,10110100, 二进制数据解析如下 二进制数 解码过程 解码结果 11100000 PMap 11111011 01111011123 123 00110010,00110011,10110100 0011001050’2’ 0011001151’3’ 0011010052’4’ 124 ASCII与string编码、解码一致看不出区别。 3、int有符号整数类型 使用上述代码输出为 msg111 - {123, 234} outByteStr11100000,11111011,00000001,11101010, 二进制数据解析如下 二进制数 解码过程 解码结果 11100000 PMap 11111011 01111011123 123 00000001,11101010 000000011*128128 01101010106 128106234 234 将输入修改为负值 msg111 - {123, -234} outByteStr11100000,11111011,01111110,10010110 二进制数据解析如下 二进制数 解码过程 解码结果 11100000 PMap 11111011 01111011123 123 01111110,10010110 01111110-1111110 10010110-0010110 实际11111100010110 -234 234 问题有符号整数如何传输负值 可以看到在传输234这个值时我们解码的方式是将2个字节分开前面的字节转十进制后乘以128后面的字节直接转十进制然后两个十进制数相加。 在传输-234时是两个字节分别去掉第一个位停止位拼接起来直接转成了十进制。 我们知道在计算机中对于有符号整数的二进制存储是默认了第一个位是1的话认为是负数第一个位是0的话则认为是正数。这里也是一样去掉每个字节的第一个位停止位后第一个位如果是1则认为是负数适用负数转换规则。第一个位如果是0则认为是正数适用正数转换规则。 对于一些数值刚好第一位是1该如何处理比如1261111110 msg111 - {123, 126} outByteStr11100000,11111011,00000000,11111110, 实例如上只需要在前面补0即可。 4、uInt无符号类型 使用上述代码输出为 msg111 - {123, 126} outByteStr11100000,11111011,11111110, 二进制数据解析如下 二进制数 解码过程 解码结果 11100000 PMap 11111011 01111011123 123 11111110 01111110126 126 可见对于无符号数直接按正数规则解码即可。 5、decimal浮点数类型 使用上述代码输出为 msg111 - {123, 234.456} outByteStr11100000,11111011,11111101,00001110,00100111,11011000, 二进制数据解析如下 二进制数 解码过程 解码结果 11100000 PMap 11111011 01111011123 123 11111101 11111101-3 -3 00001110,00100111,11011000 0000111014 0010011139 0101100088 14*128*12839*12888234456 234456 很容易看明白对浮点数进行编码时分成了2个部分第一部分是“小数点”位数第二部分是整数。解码后将两部分合并才能得到最终结果。 问题如何传递负浮点数 将234.456修改为-234.456后输出为 msg111 - {123, -234.456} outByteStr11100000,11111011,11111101,01110001,01011000,10101000, 二进制数据解析如下 二进制数 解码过程 解码结果 11100000 PMap 11111011 01111011123 123 11111101 11111101-3 -3 01110001,01011000,10101000 111000110110000101000-234456 -234456 与有符号整数差不多是否传递负数只需要将除去“停止位”后判断第一个位是否是“1”即可。所以只需要将浮点数的传递看成是“小数点”“整数”两个部分即可。 6、byteVector字节向量类型 前面我们讨论了整数、浮点数、字符串所有的编码其实都遵循了一个原则即一个字节能够传递的最大值只能小于128要传递更大的值则需要“进位”。但我们需要传递的字节一定要大于128该如何是好比如中文。我们使用前面的字符串、ASCII、整数也不是不能编码但解码起来就有点麻烦。很明显这时候就可以用到字节向量。 使用上述代码输出为 msg111 - {123, ????????} outByteStr11100000,11111011,10001000,11001110,11111011,11001110,11111011,10111001,11111110,10111001,11111110, 二进制数据解析如下 二进制数 解码过程 解码结果 11100000 PMap 11111011 01111011123 123 10001000 000010008 8个字节 11001110,11111011, 11001110,11111011, 10111001,11111110, 10111001,11111110 11001110,11111011CE FB 11001110,11111011CE FB 10111001,11111110B9 FE 10111001,11111110B9 FE CEFB CEFB B9FE B9FE嘻嘻哈哈 嘻嘻哈哈 有点类似浮点数的编码这里先传递字节向量的长度“8”接着传递字节向量。由于字节向量的长度已指定故传输数据时不再遵循停止位的概念。 另注意这里使用的是GBK编码故直接输出是乱码。 四、回顾 数据类型 说明 备注 ascii ASCII字符串类型 遵循一般停止位规则最后一个字节的第一位为1则是该字段最后一个字节而后根据ASCII码表直接转字符串即可。 string 字符串 同上 int 有符号整数 遵循一般停止位规则注意第一位除开停止位之外的为“0”则是正整数则按128进位的规则进行数值转换即可。第一位除开停止位之外的为“1”则是负整数则将全部字节去掉停止位后直接转为整数即可。负数转换时需要注意前面要补1。 uInt 无符号整数 遵循一般停止位规则由于知道一定是正整数则直接按128进位的规则进行数值转换即可。 decimal 浮点数类型 分两部分进行传递两个部分均遵循一般停止位规则。第一部分是浮点数的“小数点位数”第二部分则是整数。注意是有符号整数遵循int的解码方式即可。 byteVector 字节向量类型 分两部分进行传递第一部分是字节向量的长度遵循一般停止位规则。第二部分则是纯byte数据不再遵循停止位规则但由于前面有传递其长度故也不会出错。 结语这里只是最基本的编码解码规则到这里也只是能稍微看懂一点还无法进行真正的FAST解码。后面的“操作符”及null什么的才是硬骨头。
http://www.hkea.cn/news/14424864/

相关文章:

  • asp网站安装个人网站注册
  • 学编程的好处重庆网站页面优化
  • 企业网站cms宣传海报怎么制作
  • 网站做cdn需要多少钱常州哪家公司做网站
  • 网站怎么做架构南京网站制作有限公司
  • 网站托管套餐深圳网站建设简介
  • 泰州手机网站制作asp网站模板免费下载
  • 建设网站技术标准nas可以做网站
  • 四川手机网站设计方案网站怎么做才能被百度收录
  • 婚纱摄影网站设计案例公司网站开发费用兴田德润官方网站
  • 网站登记表o2o商城
  • 网站开发基础课程论坛网站模板
  • 网站登录界面模板html域名代理商网站
  • 台州网站公司建站小程序制作难吗
  • 本溪做网站的公司好的网站布局
  • 网站怎么做直通车推客易可以做自己的网站吗
  • 站长之家素材做app推广上哪些网站吗
  • 用asp做的网站如何发布住房及城乡建设部网站
  • 荥阳网站制作如果做vr参观网站
  • 牛二网站建设wordpress吃内存
  • 网站内容计划wordpress 调用相册
  • 厦门市建设局网站做图片详情网站
  • 网站建设app手机下载织梦怎么做门户网站
  • html网站登录界面模板wordpress arduino
  • 广东网站建设公司网络服务海口seo关键词优化
  • 重庆品牌网站建设公司排名北京房产
  • 网站快速盈利做网站绑定 对应的域名
  • 有哪些网站制作公司网络安全设计方案
  • 大气的企业网站源码新手机发布
  • 网站建设标书微网站的搭建