hyd*_*rix 6 javascript blob arraybuffer
问题:在视频游戏中,有大量的低精度数字可以通过网络打包在一起,与发送字符串相比可以大大节省带宽.字符串分配给UTF-8,每个字符使用1个字节.
理想情况下应该有一种方法将这些数字写在一起:
如何获取这样的低精度数字并将它们放在数组缓冲区/ blob中?
您可以使用Uint32Array, 然后使用移位和掩码操作将值存储在该数组中。
例如,如果您想存储一个 4 位数字,然后存储一个 10 位数字(留下 18 位用于更多字段):
array[0] = (num0 & 0x0f) << 0) |
(num1 & 0x3ff) << 4);
Run Code Online (Sandbox Code Playgroud)
并提取这些字段:
num0 = (array[0] >>> 0) & 0x0f;
num1 = (array[0] >>> 4) & 0x3ff;
Run Code Online (Sandbox Code Playgroud)
可以ArrayBuffer通过访问其属性来访问该数组以进行序列化.buffer。
| 归档时间: |
|
| 查看次数: |
119 次 |
| 最近记录: |