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

变长字节的数字表示法vb224

开始

数字有大有小,用多少字节表示呢?
本文描述的方案,采用变化的长度。vb是varying bytes的意思,224是表示它特征的一个数。

第一版:

每个字节8比特,最高的1比特用来表示“是否连续”,0表示终止,1表示继续,如:
单字节模式:0×××××××
双字节模式:1××××××× 0×××××××
三字节模式:1××××××× 1××××××× 0×××××××
一直延续下去,理论上说可以表示无穷大。
这一版叫做vb128。

第二版:

为表示0到255做了优化。
单字节模式:0至223
双字节模式:224至255,0×××××××
三字节模式:224至255,1××××××× 0×××××××
也能表示无穷大。
首字节中,224至255是32个数,即5比特。
后边的字节,每个字节表示7比特。

比较:

题目:表示0到255,以及保留继续变大的可能。
解一:表示0到255需要256个字节,要想保留继续变大的可能,需要用双字节、四字节、八字节等。占用空间较大。
解二:采用vb128。前128个数字用1字节,后128个数字用2字节,总共128+2×128=384字节。
解三:采用vb224。前224个数字用1字节,后32个数字用2字节,总共224+2×32=288字节。
比较结果:
解一很占空间,且不能表示无穷大,退出比较。
解三比解二省下384-288=96字节。

总结:

当你需要表示一个数字,却又不能确定数字所占字节数的时候,可以考虑vb224编码。
截止2025年6月,该方案尚未实现,你可以自己动手实现,并应用于项目之中。

相关文章:

  • 领域驱动设计(DDD)【22】之限定建模技术
  • [openwrt-21.02] T750平台增加memtester-4.1.3软件包操作说明
  • 华为云Flexus+DeepSeek征文|基于Dify构建AI资讯语音播报工作流
  • cocos creator 3.8 - 精品源码 -《文字大师》(移一笔变新字)
  • Webpack vs Vite:多进程打包技术深度解析与性能革命
  • Day45 Tensorboard使用介绍
  • 华为云Flexus+DeepSeek征文 |华为云ModelArts Studio集成OpenAI Translator:开启桌面级AI翻译新时代
  • 问卷标记语言(QML):简化调查问卷设计与部署的XML解决方案
  • 【SpringSecurity鉴权】
  • 网络安全体系结构和安全防护
  • 用户名是中文,导致jupyter生成配置文件失败的解决方法。
  • navigation2学习笔记
  • 医疗标准集中标准化存储与人工智能智能更新协同路径研究(上)
  • Python基础(吃洋葱小游戏)
  • 卸载Modelsim/Qustasim方法
  • 布林带的使用
  • [rootme:ctf all the day]Ubuntu 8.04week wp
  • selenium元素定位
  • 【软考高项论文】论信息系统项目的整体管理
  • JVM 之双亲委派机制与打破双亲委派