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

济南网站开发培训网站产品数据如何恢复

济南网站开发培训,网站产品数据如何恢复,WordPress修改注册界面,c#网站开发工具一、概述 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.w-s-a.com/news/225343/

相关文章:

  • 邯郸营销型网站国际招聘人才网
  • hexo wordpress 主题织梦网站优化教程
  • 网站建设方案及上海市建设协会网站
  • 轴承外贸网站怎么做南宁网站排名优化公司哪家好
  • 沈阳企业网站建站郴州优化公司
  • cctv5+手机在线直播观看seo关键词排名优化方法
  • 网站建设公司怎么谈单怎么开通微信小程序商店
  • 深圳做网站案例一个服务器可以备案几个网站
  • 网络营销策划名词解释泉州百度推广排名优化
  • 一键生成网站的软件互联网营销师是干什么
  • 网站后台管理水印怎么做手机优化设置
  • 哪个网站做图文素材多wordpress++优化
  • 建设网站就选用什么样的公司网站类型分类有哪些
  • 找平面设计师网站网站建设须知
  • 建设联结是不是正规网站wordpress 微博同步
  • 瑞安微网站建设广州推广
  • 做旅游宣传网站的流程图中国企业集成网电子商务
  • 开发商城网站开发成交功能网站
  • 网站建设公司专业公司排名搭建网站的企业
  • 网站建设难吗海南智能网站建设报价
  • 企业网站建设选题的依据及意义校园网站建设的论文
  • 网站版面设计方案水电维修在哪个网站上做推广好些
  • 邹平建设局官方网站企业宣传片广告公司
  • 南京建设集团网站建站极速通
  • 网站建设与推广员岗位职责网站开发应如何入账
  • 企业网站的作用和目的手机回收站
  • 大连零基础网站建设培训电话郎溪做网站
  • 成都科技网站建设注册公司最少需要多少注册资金
  • 找公司做网站注意事项麻城建设局网站停办
  • 沧州企业做网站wordpress 消息通知