對於序列化/協議格式,我必須以節省空間的方式對無符號數字進行無符號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。你認爲額外的處理是值得的嗎?
感謝您的及時回覆。當然,我想用一個已知的協議,這就是爲什麼我問。我知道與UTF8的相似之處,但這是針對數字的。使用7位編碼和1位溢出位的基於字節格式是相當自然的,我發現我不太可能發明它。以前沒有人看過這個嗎? – user601395 2011-02-03 15:50:19