bcd與hex轉換、以及編碼格式

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編碼下繼續工作。











發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章