這裡就不介紹varint編碼的原理了,請自行查詢原理並理解,這裡只是在c#上對varint編碼、解碼的實現。
using system;
///
/// varint編碼
///
public
class
varintutil
else
index++;}
return varintbuffer;
}///
/// 計算value實際長度
///
///
///
public
static
intcomputerawvarint32size
(int32
value)if
((value&(
0xffffffff
<
<14)
)==0)
if((value&(
0xffffffff
<
<21)
)==0)
if((value&(
0xffffffff
<
<28)
)==0)
return5;
}///
/// 某個byte是否是varint編碼的結束位元組
///
///
///
public
static
bool
isvarintend
(byte
value
)///
/// 將byte轉化為對應的int
///
///
///
public
static
intgetvarintvalue
(byte
buffer)
result = result |
(value
&127
)<
* i);}
return result;
}}
呼叫方式:
private
void
varinttests()
private
void
varinttest
(int32
value
)byte
lengthbuffer2 =
newbyte[5
];int index =0;
while
(true)}
int32 length = varintutil.
getvarintvalue
(lengthbuffer2)
; logutil.
log(
this
,"receive length:"
, length)
;}
執行結果:(這裡基本測試了int32能表達的所有數了結果如下)
huffman編碼和解碼實現
寫資料結構的實驗確實是蠻麻煩的,下面提供乙個還可以執行的源程式給大家參考,應付實驗老師是綽綽有餘的了 link.h檔案內容 pragma once class link link的實現檔案什麼內容也沒有,所以就不寫啦 huffman.h內容 pragma once include link.h cl...
js編碼 解碼
js對文字進行編碼涉及3個函式 escape,encodeuri,encodeuricomponent,相應3個解碼函式 unescape,decodeuri,decodeuricomponent 1 傳遞引數時需要使用encodeuricomponent,這樣組合的url才不會被 等特殊字元截斷。...
JS 編碼解碼
encodeuri 函式可把字串作為 uri 進行編碼。encodeuri uristring 引數 描述uristring 必需。乙個字串,含有 uri 或其他要編碼的文字。uristring 的副本,其中的某些字元將被十六進製制的轉義序列進行替換。該方法不會對 ascii 字母和數字進行編碼,也...