編碼的簡單總結

2022-07-19 02:33:12 字數 3203 閱讀 7687

編碼目的

字首或特點

編碼形式

常見或特殊記憶

url編碼

對ascii中的一些可列印字元進行編碼

字首%以%為字首,其後是字元的兩16進製制的ascii碼

%20空格 %00空位元組 %25百分號 +也代表url的空格

html編碼

為在html文件中安全的使用某些字元

&或或後跟字元10進製的ascii碼,為字首,後跟字元的16進製制的ascii碼

"為"或"或" >為》 《為<

uuencode編碼

將二進位制檔案轉換為文字檔案,便於純文字email傳輸

只有可列印字串,從10進製ascii碼33-96,即明顯沒有小寫字母中括號等

16進製制編碼

對二進位制資料進行16進製制編碼

base64

對二進位制資料進行編碼,用來將非ascii字元的資料轉換成ascii字元

末尾經常出現=

大寫字母az,小寫字母az,數字0~9以及"+","/"及用來填充的=

base32

對二進位制資料進行編碼,用來將非ascii字元的資料轉換成ascii字元

末尾經常出現=

大寫字母az和數字27及用來填充的=

base16

對二進位制資料進行編碼,用來將非ascii字元的資料轉換成ascii字元

數字09和字母af

unicode

對世界所有的字元編碼

u+用四個位元組為每個字元進行編碼,一般用16進製制字元表示

utf8

把unicode字元進行編碼,便於儲存傳輸的編碼方式

%使用一至四個位元組為每個字元編碼

utf16

把unicode字元進行編碼,便於儲存傳輸的編碼方式

%u使用二或四個位元組為每個字元編碼

utf32

把unicode字元進行編碼,便於儲存傳輸的編碼方式

%u使用四個位元組為每個字元編碼

ascii碼

對鍵盤的128個字元編碼

使用7位二進位制數來表示所有的大寫和小寫字母,數字0 到9、標點符號,以及在美式英語中使用的特殊控制字元

gbk對中文字元編碼

使用兩個位元組編碼

bcd碼

對二進位制資料進行編碼

用4位二進位制數來表示一位十進位制數中的0~9十個數碼,有8421碼,2421碼,餘3迴圈碼等方式

quoted-printable編碼

=每乙個8位位元組編碼為乙個=號後跟兩個十六位數,根url編碼差不多,只不過字首為=

敲擊碼對26個英文本母編碼

將26個字母放在5*5的矩陣中(k和c放在一起),比如用(1,1)代表a,(1,5)代表e

摩爾斯電碼

. -用. -的不同組合順序表示字母,數字,標點符號,並用停頓區分單詞,句子

非歸零編碼nre——高低電平分別用0和1表示

曼徹斯特編碼——從高電平跳到低電平表示0,從低電平跳到高電平表示1

差分曼徹斯特編碼——每一位中間有跳變,用來表示時鐘,每一位開始時有跳變表示0,無表示1

用於壓縮,***編碼等

簡單的二元霍夫曼編碼過程如下

所以e的編碼為1,c的編碼為01,f的編碼為000,h的編碼為001

簡單的二元費諾編碼過程如下,不斷分為概率相近的兩組

用於衛星,醫學影象等的編碼,利用遊程,例如影象畫素為

3333

4333

2211

1111

灰度:3,4,3,2,1,1

長度:4,1,3,2,2,4

灰度用兩位,長度用兩位為1011,1100,1010,0101,0001,0011

增加一位奇(偶)校驗位並一起儲存或傳送

比如:1111000中1位偶數新增一位為0表示1的位數為偶數,變為11110000,如果傳輸過程中發生了錯誤變為10110000,那麼就可以知道有一位發生了錯誤。如果偶數個位錯誤,是無法發現的

乙個k位的二進位制資料,左移r位,除以乙個給定的r+1位的多項式相除,得到的r位餘數就為校驗碼,拼到k位的二進位制數後面

只要將接受到的資料和校驗位用約定好的同樣的生成多項式除,如果能除盡,表明沒有發生錯誤(不一定,也有可能錯誤);若除不盡,則表明某些資料位發生了錯誤

如資訊碼為1100,生成多項式為\(x^+x+1\)

則1100平移3位1100000 除以1011,餘數為010,拼在1100後面為1100010

能夠糾正一位錯誤或者檢測兩位錯誤並糾一正位錯誤

設資訊碼為k位,校驗碼為r位,海明碼為k+r位

如果能夠糾正一位錯則應滿足\(2^-1\geq k+r\)

如果能夠發現兩位錯並糾正一位錯則應滿足\(2^\geq k+r\)

編碼規律為

例如求01101110的海明碼,使其能糾正一位錯誤

一 確定校驗位數

\(2^-1\geq 8+4\) 所以r為4

二 確定校驗位所在位置

\(2^\),\(2^\),\(2^\),\(2^\)所以海明碼的1,2,4,8為校驗位

三 分組

四 確定校驗位

每一組除本身校驗位外,所有位異或,如第一組為\(_ \oplus_ \oplus_ \oplus_ \oplus_=\)

四個校驗碼分別為1101,所以海明碼為110011011110

五 校驗

將每一組與本組的校驗位異或,即\(_ \oplus_ \oplus_ \oplus_ \oplus_ \oplus_\),如果校驗位都為0,則無錯,如果有錯,校驗位二進位制編碼即為出錯位號,如,如果校驗位為1010,則第第10位錯,即\(_\)出錯

總結的編碼規範

1 巨集定義格式 每個單詞用下劃線隔開。示例 define yyy 20 define yyy 20 各用兩個 tab隔開 2 一律不得出現常量,對於出現的常量 指數字和字串 用意義明顯的巨集定義 或列舉變數 代替。3 每個函式體不能過長,原則上不超過 200行 4 每個檔案不能過長,原則上不超過 ...

1090 簡單編碼

簡單編碼 time limit 1000ms memory limit 65536k total submit 164 accepted 65 description 最近kingly對編碼很感興趣,於是從網上找了一些編碼原則來對字串做實驗。因為kingly一直很忙,所以希望你這位程式設計高手來替他...

簡單編碼 sdut oj

time limit 1000ms memory limit 65536kb problem description 將一串文字譯成密碼,密碼的規律是 將原來的小寫字母全部翻譯成大寫字母,大寫字母全部翻譯成小寫字母,數字的翻譯規律如下 0 9 1 8 2 7 3 6 4 5 5 4 6 3 7 2 ...