uint29传输格式
2023-12-21 01:48:36
    		前言
不知道谁想出来的。
 反正我是想不到。
我看网上也没人讲这个。
 写篇博客帮一下素未谋面的网友。
uint29
本质上是网络传输的时候,借用至多4字节Bytes,表达29位的无符号整数。
- 读8位数字,判断小于128? 是的话,返回末7位,即值域[0, 127)。
- 上一步>=128的话,说明首位为1,丢弃首位,保留末7位。
- 再读8位数字,判断小于128? 是的话,将末7位拼接到暂存结果后,返回7+7=14位。
- 否则的话,说明首位是1,丢弃首位,保留末7位拼到暂存结果后。
- 再读8位,重复判断,首位非1则直接返回7+7+7=21位结果。
- 否则,首位为1,丢弃首位,保留拼接后的21位结果。
- 最后再读8位,这次不做判断,直接拼接,返回7+7+7+8=29位结果。
  
返回的结果在一个32位的 arraybuffer里写一下。
 就能转成[0,2^29)范围的 int32型正整数了。
好处
使用uint29的好处是,节约传输帧长。
 要表达的数字很大时,至多占用4个字节。
 而数字比较小(<128)时,只占用1个字节,就能节约3个出来。
    			文章来源:https://blog.csdn.net/w55100/article/details/135119345
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
    	本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!