簡體   English   中英

位操作(削減位)

[英]Bit Manipulation (Cutting down bits)

假設一個字節是8位,而一個字符是1個字節,是否有任何方法可以操縱字符數組(字符串),這樣我們就可以將字符串中的每個字符表示為更緊湊的位數(比如說5位?)

當然,只需將每個字符映射到新的編碼即可。 但是,隨着減少位數,“字母”中支持的字符可能會減少。 例如5位只能支持32個可能的字符。

霍夫曼編碼允許使用可變長度的代碼,但是正確設計后,您平均會得到較短的代碼。

第三種選擇是保留ascii編碼,但是使用某種壓縮方式來減少字節數。

每個步驟都有很多實際的實現。 例如,如果您知道只有26個大寫字母'a'-'z',空格且沒有數字,則可以使用5位值,因為您只需要27個值。 一個簡單的方法是像這樣轉換每個字符:

out_char = (in_char == ' ') ? 31 : (in_char - 'A');

如果需要大寫和小寫,則需要52個字符,因此需要6位。

霍夫曼的實現需要了解每個字符出現頻率的統計信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM