1、BCD碼
(1)壓縮BCD:4位二進制數表示一個十進制數,例如:
0001 0010 --> 12
0001 0011 --> 13
(2)BCD:8位二進制數表示一個十進制數,高四位爲0;
0000 0001 0000 0010 --> 12
0000 0001 0000 0011 --> 13
一般地,壓縮BCD碼比較常用,可以節約存儲空間。
2、Hex
Hex就是16進制,本質上是將字節數組轉化爲16進制,然後用字符串的形式表現出來。
原理:一個8bit的數據,也就是(xxxx xxxx),每4個bit可以轉化爲一個16進製表示,也就是8個bit會轉化爲(00-ff)之間的16進制數字。
hex編碼 :指將數據編碼16進制字符串;hex解碼:指16進制字符串解碼爲數據。
3、Ascii
ASCII碼使用一個字節編碼,所以它的範圍基本是隻有英文字母、數字和一些特殊符號 ,一個字節能表示的最大的整數就是255,所以,只有256個字符。
十進制 | Ascii | 二進制 | HexString |
0 | 48 | 00110000 | 30 |
1 | 49 | 00110001 | 31 |
2 | 50 | 00110010 | 32 |
4、Unicode能夠表示全世界所有的字節,最常用的是用兩個字節表示一個字符(如果要用到非常偏僻的字符,就需要4個字節)。
字母A用ASCII編碼是十進制的65,二進制的 01000001;
字符0用ASCII編碼是十進制的48,二進制的 00110000,注意字符'0'和整數0是不同的;
漢字中已經超出了ASCII編碼的範圍,用Unicode編碼是十進制的20013,二進制的 01001110 00101101。
可以猜測,如果把ASCII編碼的A用Unicode編碼,只需要在前面補0就可以,因此,A的Unicode編碼是00000000 01000001。
5、GBK是隻用來編碼漢字的,GBK全稱《漢字內碼擴展規範》,使用雙字節編碼。
6、UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字符編碼,又稱萬國碼。
UTF-8用1到6個字節編碼UNICODE字符。用在網頁上可以同一頁面顯示中文簡體繁體及其它語言(如英文,日文,韓文)。
字符 ASCII Unicode UTF-8
A 01000001 00000000 01000001 01000001
中 x 01001110 00101101 11100100 10111000 10101101
從上面的表格還可以發現,UTF-8編碼有一個額外的好處,就是ASCII編碼實際上可以被看成是UTF-8編碼的一部分,所以,大量只支持ASCII編碼的歷史遺留軟件可以在UTF-8編碼下繼續工作。