C varint編碼實現(編碼 解碼)

2021-10-07 10:20:09 字數 1610 閱讀 7928

這裡就不介紹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 字母和數字進行編碼,也...