鳥哥的 Linux 私房菜 -- 計算機概論 -- 計算機:輔助人腦的好工具
最近更新日期:2009/08/03
3. 數(shù)據(jù)表示方式
3.1 數(shù)字系統(tǒng)
3.2 文字編碼系統(tǒng)
數(shù)據(jù)表示方式
?
事實上我們的計算機只認識0與1,記錄的數(shù)據(jù)也是只能記錄0與1而已,所以計算機常用的數(shù)據(jù)是二進位的。
但是我們人類常用的數(shù)值運算是十進位,文字方面則有非常多的語言,臺灣常用的語言就有英文、中文(又分正體與簡體中文)、日文等。
那么計算機如何記錄與顯示這些數(shù)值/文字呢?就得要透過一系列的轉換才可以啦!底下我們就來談談數(shù)值與文字的編碼系統(tǒng)羅!?
數(shù)字系統(tǒng)
?
早期的計算機使用的是利用通電與否的特性的真空管,如果通電就是1,沒有通電就是0,
后來沿用至今,我們稱這種只有0/1的環(huán)境為二進位制,英文稱為binary的哩。所謂的十進位指的是逢十進一位,
因此在個位數(shù)歸為零而十位數(shù)寫成1。所以所謂的二進位,就是逢二就前進一位的意思。那二進位怎么用呢?我們先以十進位來解釋好了。如果以十進位來說,3456的意義為:
3456 = 3x10 3 + 4x10 2 + 5x10 1 +
6x10 0特別注意:『 任何數(shù)值的零次方為1 』所以10 0 的結果就是1羅。
同樣的,將這個原理帶入二進位的環(huán)境中,我們來解釋一下1101010的數(shù)值轉為十進位的話,結果如下:1101010=1x2 6 + 1x2 5 + 0x2 4 +
1x2 3 + 0x2 2 + 1x2 1 + 0x2 0
= 64 + 32 + 0x16 + 8 + 0x4 + 2 + 0x1 = 106這樣你了解二進位的意義了嗎?二進位是計算機基礎中的基礎喔!了解了二進位后,八進位、十六進位就依此類推啦!
那么知道二進位轉成十進位后,那如果有十進位數(shù)值轉為二進位的環(huán)境時,該如何計算?
剛剛是乘法,現(xiàn)在則是除法就對了!我們同樣的使用十進位的106轉成二進位來測試一下好了:?
圖3.1.1、十進位轉二進位的方法
?
最后的寫法就如同上面的紅色箭頭,由最后的數(shù)字向上寫,因此可得到1101010的數(shù)字羅!
這些數(shù)字的轉換系統(tǒng)是非常重要的,因為計算機的加減乘除都是使用這些機制來處理的!
有興趣的朋友可以再參考一下其他計算計概論的書籍中,關於1的補數(shù)/2的補數(shù)等運算方式喔!?
文字編碼系統(tǒng)
?
既然計算機都只有記錄0/1而已,甚至記錄的數(shù)據(jù)都是使用byte/bit等單位來記錄的,那么文字該如何記錄啊?
事實上文字檔案也是被記錄為0與1而已,而這個檔案的內容要被取出來查閱時,必須要經(jīng)過一個編碼系統(tǒng)的處理才行。
所謂的『編碼系統(tǒng)』可以想成是一個『字碼對照表』,他的概念有點像底下的圖示:?
圖3.2.1、數(shù)據(jù)參考編碼表的示意圖
?
當我們要寫入檔案的文字數(shù)據(jù)時,該文字數(shù)據(jù)會由編碼對照表將該文字轉成數(shù)字后,再存入檔案當中。
同樣的,當我們要將檔案內容的數(shù)據(jù)讀出時,也會經(jīng)過編碼對照表將該數(shù)字轉成對應的文字后,再顯示到螢幕上。
現(xiàn)在你知道為何瀏覽器上面如果編碼寫錯時,會出現(xiàn)亂碼了嗎?這是因為編碼對照表寫錯,
導致對照的文字產(chǎn)生誤差之故啦!常用的英文編碼表為ASCII系統(tǒng) ,這個編碼系統(tǒng)中,
每個符號(英文、數(shù)字或符號等)都會占用1bytes的記錄,
因此總共會有2 8 =256種變化。至於 中文字當中的編碼系統(tǒng)目前最常用的就是big5這個編碼表了 。
每個中文字會占用2bytes,理論上最多可以有2 16 =65536,亦即最多可達6萬多個中文字。
但是因為big5編碼系統(tǒng)并非將所有的位都拿來運用成為對照,所以并非可達這么多的中文字碼的。
目前big5僅定義了一萬三千多個中文字,很多中文利用big5是無法成功顯示的~所以才會有造字程序說。big5碼的中文字編碼對於某些數(shù)據(jù)庫系統(tǒng)來說是很有問題的,某些字碼例如『許、蓋、功』等字,
由於這幾個字的內部編碼會被誤判為單/雙引號,在寫入還不成問題,在讀出數(shù)據(jù)的對照表時,
常常就會變成亂碼。不只中文字,其他非英語系國家也常常會有這樣的問題出現(xiàn)啊!為了解決這個問題,由國際組織ISO/IEC跳出來制訂了所謂的 Unicode編碼系統(tǒng),
我們常常稱呼的UTF8或萬國碼的編碼就是這個咚咚 。因為這個編碼系統(tǒng)打破了所有國家的不同編碼,
因此目前網(wǎng)際網(wǎng)絡社會大多朝向這個編碼系統(tǒng)在走,所以各位親愛的朋友啊,記得將你的編碼系統(tǒng)修訂一下喔!
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
