例:你要存放0 ~ 4G之间的数据长度,最少要使用4bytes的空间,但问题是大部分时候数据的大小根本是达不到4G左右的。
如:[len][len][len]...[len],len代表要存放的数据长度。
有什么好的办法来存放最省空间呢?
有一种解决方案是:
将len的存放改为:1到5个bytes来存放。当数据的长度小于254时我们只需要1byte就可以了;当数据的长度需要2bytes来存放时,我们将其头部的一个byte设置为254,也就是用了3bytes来存放2bytes可以存放下的数据;当数据的长度需要使用3bytes以上来存放时,我们将头部的一个byte设置为255,也就是用了5bytes来存放4bytes的数据。如果数据是常见的正态分布的话,这种方法应该比较省。
这种方法其实就是将第一个byte的数据及可以用来存放数据也可以用来存放标志位了。一个位置多种用法。
寻求更好的办法...
阅读(2278) | 评论(0) | 转发(0) |