2017-02-28 238 views
0

可以說我有一個6個數字的發佈列表21992 23523 27822 28002 31010 33122.將它們轉換爲可變字節編碼的過程是什麼?如何計算髮佈列表的可變字節編碼?

+0

你是什麼意思的「可變字節編碼」?你的意思是可變長整數編​​碼?你只是指二進制編碼? –

回答

0
void encode(int value, char* code_list, int& len) { 

    int bit_value = 0; 
    int bit_num = 0; 

    if (value < 128) { 
    bit_num = 1; 
    } else if (value < 16384) { 
    bit_num = 2; 
    bit_value = 1; 
    } else if (value < 2097152) { 
    bit_num = 3; 
    bit_value = 3; 
    } else { 
    bit_num = 4; 
    bit_value = 7; 
    } 
    value <<= bit_num; 
    value += bit_value; 
    memcpy(code_list + len, (char*) &value, bit_num); 
    len += bit_num; 

}