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

如何在服务器上发布网站推广软文300字

如何在服务器上发布网站,推广软文300字,班级介绍网页制作模板,天津做网站找哪家公司前一篇博客 varint原理 - 正数的编码和解码_YZF_Kevin的博客-CSDN博客我们讲了varint的实现原理,举例也分析对于正数的编码,解码过程 本篇博客,我们开始举例分析负数的编码和解码,因为负数有原码,反码,补码…

前一篇博客 varint原理 - 正数的编码和解码_YZF_Kevin的博客-CSDN博客我们讲了varint的实现原理,举例也分析对于正数的编码,解码过程

本篇博客,我们开始举例分析负数的编码和解码,因为负数有原码,反码,补码的概念,如果大家对这一块不熟,可以先看下我的这篇博客,里面有详细的解释 大端 小端 原码 反码 补码 及内存中的表现_YZF_Kevin的博客-CSDN博客

先回顾下varint的编码,解码过程

编码原理

varint 对数字的二进制,从右往左,每7位分割成一块

如果不是最后一块,则最左边补1,组成一个字节

如果是最后一块,则左边缺的全部补0,组成1个字节

最终保存的时候,根据分割块的顺序依次从左往右

解码原理

读取字节流后,从左往右,逐个字节判断

如果该字节最左边为1,说明varint值没读取完,后面的字节还是本varint的值,继续读。本字节最左边的1去掉后,剩下的7位留作备用

如果该字节最左边为0,说明varint值读取完毕

最终,根据分割块的顺序依次从右往左填,组成的字节流按int型解析即可

举例

数字 -1,负数在内存中以补码形式存放,先计算补码,我们以32位的整型为例

-1的源码:10000000  00000000  00000000  00000001(符号位为1表负,其他跟正数一样)

-1的反码:11111111    11111111    11111111   11111110  (符号位不变,其他位全部取反)

-1的补码:11111111    11111111    11111111    11111111  (反码+1即可)

但是varint对负数统一是用64位来表示的,所以

64位的-1在内存中表示如下

11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111

每7位标一个颜色,一共分成了10块(64 = 7 * 9 + 1) 

1 1111111 1111111 1111111 1111111 1111111 1111111 1111111 1111111 1111111

编码过程

1. 从右往左依次取7位,第一次取出来的1111111,因为自己不是最后一块,根据规则左边补1,得到11111111

2. 重复上面的步骤,依次处理每块数据

3. 最后一块1,因为是最后一块了,根据规则左边补0,得到00000001

把这些分割后新组成的块,从左往右

所以,最终varint表示法-1的最终格式是

11111111 11111111 11111111 1111111111111111 11111111 1111111 11111111 11111111 00000001

动手实验

proto文件和程序如下(注意:我们定义的是int32类型)

// 玩家信息
message Player {int32               uniNum          = 1;    // 唯一序号
}

实验结果(可以看到实际经过Marshal()序列化之后,-1确实占用了10个字节,内容和我们计算的完全一样)

结论

1. varint可以对正数编码,也可以对负数编码

2. varint编码用来表示负数时,即使指定了int32类型,varint一样会作为int64来处理,且发送时要占用10个字节,非常坑

针对varint这个问题,protobuffer也做出了优化,可以使用sint32,那就是我们下一篇要讲的zigzag编码

protobuf中zigzag编码原理_YZF_Kevin的博客-CSDN博客

http://www.hkea.cn/news/312583/

相关文章:

  • 个人做网站靠什么盈利免费网站建设模板
  • 网站开发 打标签aso优化怎么做
  • 教育校园网站建设方案seo每天一贴
  • 怎么看网站的建设时间推广公司品牌
  • 营销型网站有什么特点英语培训机构
  • 学院网站的系统建设方式宝鸡网站seo
  • 网站客户端怎么做的百度一下了你就知道官网
  • 有什么推广方法优化大师电脑版官方
  • 自己做网站的服务器上海网站建设公司排名
  • 跳蛋塞逼做多的视频网站百度广告联盟官网
  • 房地产网站开发文档企业查询
  • 做emu对网站有什么要求十大免费无代码开发软件
  • 扬州专业做网站做关键词优化
  • 宿州网站建设贰聚思诚信网站服务器
  • 用照片做模板下载网站好百度爱采购官方网站
  • 微网站建设套餐网络营销是做什么的
  • 徐州有哪些做网站苏州网站建设费用
  • 统一企业信息管理系统网站直通车怎么开效果最佳
  • 武汉外贸网站建设公司外链相册
  • java做网站的权限管理seo描述是什么
  • 招聘网最新招聘信息网武汉seo计费管理
  • 直播软件开发源码重庆seo顾问
  • 公司网站如何做宣传百度视频推广怎么收费
  • 淄博市 网站建设报价郑州seo外包阿亮
  • 网络服务商是指什么网站优化排名工具
  • 网站优化的分析比较好的品牌策划公司有哪些
  • 国外比较好的资源网站电商运营推广是做什么的
  • 佛山房地产网站建设seo实战培训王乃用
  • 如何做可以赚钱的网站关键词如何快速排名
  • 深圳品牌做网站公司有哪些百度app推广