不知道谁想出来的。
反正我是想不到。
我看网上也没人讲这个。
写篇博客帮一下素未谋面的网友。
本质上是网络传输的时候,借用至多4字节Bytes,表达29位的无符号整数。
7
位,即值域[0, 127)
。7+7=14
位。7+7+7=21
位结果。7+7+7+8=29
位结果。返回的结果在一个32位的 arraybuffer
里写一下。
就能转成[0,2^29)
范围的 int32
型正整数了。
使用uint29的好处是,节约传输帧长。
要表达的数字很大时,至多占用4个字节。
而数字比较小(<128)时,只占用1个字节,就能节约3个出来。