題目:計算機概論X30天
挑戰內容:連續30天紀錄計算機概論、離散數學、演算法、資料結構等課程,還有自己學習程式的心得體悟。
本篇性質:適合任何對程式語言有興趣的人閱讀
本篇性質:純粹學習內容的紀錄
,不會有太嚴謹或是流暢的說明,因此不適合認真閱讀(怕你被誤導)
前面學過ASCII編碼中,一個字符用8bit儲存,並可以用和兩個「十六進位」的數字表示
比如說A在ASCII編碼中用「二進位」表達就是01000001(使用8bit) ,然後用「十六進位」表達就是41
十六進位的好處,就是把2進位的超長數字縮短
但是ASCII全世界可能只有美國人覺得很好,因為ASCII只能容納256個字符啊!!其他國家的語言怎麼辦!?
ASCII的每個字符只有有8bit,而每個bit有2個可能性(0or1),意味著8bit字符只有2^8=256種可能
光是裝A~Z+a~z(小寫)就已經佔據52個,然後再算上+ - * !@$%這些奇怪的符號,256就差不多佔滿了。
那其他語言,像是漢字就有10萬多個字,根本裝不進ASCII。
因此後來出現了Unicode編碼,他的野心就是將每個國家的字符裝進去
補充:2 byte 又可以稱為1個word
原本一個字符是8bit,現在是用16bit。
每個bit有兩種可能1or0,現在一個字符就是2^16約略是6萬多種可能,也就是說可以裝到6萬多種字符。
可是這樣很奇怪,前面說「漢字就有10萬多個字」,就算Unicode給到16bit也根本不夠用好嗎!!
因此,說Unicode有「4個」十六進位是個不精確的說法,有些字符是會用到「5個」十六進位。
其實Unicode有分許多層
第0平面:使用「4個」十六進位,專門放最常見的語言(包括abcd、「你」、「我」...還有其他語言的常見的符號)。可以容納2^16約略是6萬多種全世界最常見的符號
第1平面:開始使用「5個」十六進位,開始放一些少見的符號
為什麼要分平面呢?因為有些字很少見,可能一輩子都不會遇到一次,如果把他們一起放在第一平面,用2byte表示就很浪費空間,因此等到有需要在佔據3byte就好了。