对于序列化/协议格式,我必须以节省空间的方式将无符号数编码为无符号 64 位整数,这种方式应该仍然很容易实现(意思是,我不是在寻找专用的压缩算法)。我在考虑以下问题:
if n<128
take bits 0..6 for representing n, set overflow bit 7 to 0
store one byte
if n>=128 and n<16384
take bits 0..6 of byte 1 as bits 0..6 of n, set overflow bit 7 of byte 1 to 1
take bits 0..6 of byte 2 as bits 7..13 of n, set overflow bit 7 of byte 2 to 0
store byte 1 followed by byte 2
if n>=16384 and n<2^21
...set overflow bit 7 of byte 2 to 1... (and so on)
我对此有两个问题:
这种格式怎么称呼?我在哪里可以查找实现?
这是用于将通过套接字发送的二进制协议,其中将经常发送小于 128 的小数字。你认为额外的处理值得吗?