數字系統與資料表示法
電腦的基本單位 電腦,顧名思義,它必須是有電才有腦的,它是由許多電子電路所組合而成,它以1代表開,而以0代表關。 對於任一條電路,它只能有導電1或不導電0兩種狀況,這也構成了電腦的基本單位,我們稱它為位元(Bit),而這種只有0或1兩種狀態的系統就叫二進位系統(binary system)。
電腦的基本單位 在日常生活中,我們習慣於使用十進位 (由0、1、2至9所組成,逢10就進位)。 舉例而言,若班上有52位同學,使用十進位只要二位數就夠了,因為十進位的二位數可代表0到99,共有100種狀況。 而在電腦中呢? 因為它使用二進位(由0至1所組成,逢2就進位),故一位數只能代表兩種狀況,二位數只能代表四種狀況。 所以,班上有52位同學,若要用二進位來編座號,那至少得要有六位數才夠。
電腦的基本單位 現在請看看您的鍵盤,鍵盤上的A~Z共有二十六個字元,小寫的a~z又有二十六個字元,0~9有十個字元,再加上特殊符號(! @ # % & *…等)就超過九十三個字元了。而您在鍵盤所按下的每個字元都得是不同的代碼,電腦才能得以識別。 例如以ASCII碼來說,您按下”A”,它將傳送01000001的訊息至主記憶體中,而後在螢幕上顯示”A”。 如果是”B”呢? 它傳達的訊息是01000010。 所以,電腦的基本單位是位元(Bit),但一個位元只能代表兩種狀況根本不敷使用,所以它將8個位元,組成一個位元組(byte)。 8位元(bit)=1位元組(byte) 因為一個位元組(8 bit)共有28=256 種狀況,已足以代表鍵盤上的任一按鍵及功能鍵了。
電腦的基本單位 對於使用英文的國家而言,都是由大小寫的A~Z所組成的。但對於中文呢? 教育部編地的常用字有4800字,次常用字有7652字,再加上不常用字共有13053字,區區的一個位元組怎夠用呢?如果使用兩個位元組呢? 兩個位元組共有65536種狀況,已足以代表任一中文字了,故一個中文字是由兩個位元組所組成的。 所以,電腦的基本單位是位元(Bit)﹔而一個位元組(8 bit)能代表任一字元(character),亦即字元、數字或特殊符號;而對於中文字則須以兩個位元組來儲存。
電腦的基本單位 時至今日,電腦的儲存容量是相當大的,因為一個Byte只能代表一個小量的資訊,所以電腦記憶體和儲存媒體的容量通常以千位元組(1,024 byte),百萬位元組(1,048,576 byte),或十億位元組(1,073,741,824 byte)來表示。故byte的縮寫為大寫的B,若為小寫的b則是bit的意思。一個中文字需2 bytes來表示,若以60G的硬碟而言,約可容納30億個中文字,60億個英文字,因此要放入整個圖書館的資料是輕而易舉的事。
數位與類比 數位(Digital) 在電腦中大部分所常見的資訊處理是以二進制位元的組合來編碼、儲存。也就是以兩個狀態(邏輯上的開與關)來代表兩個電壓的層次,並用以代表所有的資訊,包含文字、數字、圖形符號、程式命令。在這種情況下,電腦內的各電路元件之狀態會連續的改變,以移動、操作或儲存資料。一般而言是以高電壓和低電壓來呈現資訊,不像類比訊號是連續不斷變動的。
數位與類比 類比(Analog) 某種裝置或訊號在數量或強度上具有連續不斷變動的屬性(如電壓或音頻訊號),而不是以斷續的訊號為基礎(如電腦訊號中的0與1)。
數位與類比 另外為了因應某些工作上的需求,我們需要將數位與類比訊號做轉換,如工程師需要將電壓轉換成數據顯示在電腦上;或需要將溫度以數據表現…等。這時候就需要ADC(類比至數位轉換器)或DAC(數位至類比轉換器),就是將連續變動訊號轉換成二進碼或反之。
數字系統 在日常生活中,我們最常用的數字系統是十進位的,也就是以0、1、2~9共十個數字來作為計數的基底(base),逢10就進位了。但也有使用其他進制的,例如ㄧ斤有16兩,ㄧ兩有16錢,這就使用16進位系統。 而時間呢? 一小時有60分鐘,ㄧ分有60秒,這就是60進位系統了。 對於電腦呢? 它的基本單位是位元(Bit),只能代表0或1兩種符號,所以它使用的是二進位系統,也就是說它只能有0與1二個數字,逢2就進位了。
數字系統 請看底下的十進制吧! 其中的5是千位數,故得乘上10的3次方﹔而2為十位數,故乘上10的1次方﹔8為個位數,於是乘上10的0次方,小數點以後的呢?它即由左而右依次為10的-1次方、10的-2次方… 方才說過,日常生活中我們最常使用十進制,這也就有如以下的問題:
數字系統 3斤11兩,要怎麼算出共有幾兩呢? 它的計算方法如下: 它一共有59兩
數字系統 又如3小時24分12秒,要怎麼算出一共有幾秒呢? 請看如下的計算方法: 答案是12252秒
數字系統 接下來的問題,二進位的101011是十進位的多少呢? 答案是十進位的 43 現在您已了解如何將二進位轉換成十進位了吧! 而為什麼您要了解如何將二進位轉換為十進位呢?因為電腦只懂得二進位,而我們習慣看的是十進位,故電腦得將最終的答案由二進位轉換成十進位於螢幕上秀出給您看,它的原理就是如此!
數字系統 反過來,您要如何將十進制轉換為二進制呢? 當您要將十進位的數字轉換乘二進位時,只要將該十進制的值一直除以2,求出它的餘數,直至商小於除數即可。 例如本例即除至商為1(已小於除數的2)最後,您只要寫下商值,再將餘數由下至上,一次寫下即得如下的二進位數值
八進位系統 請看底下的二進位數值 : 有問題了吧! 您只看到一堆0與1,但還要解讀共有幾個0幾個1、以及前後順序為何,這根本是個難題! 所以,為了方便閱讀或記憶,人們想出了各種不同的速記法,來取代二進制系統,這其中以八進位系統(octal system)與十六進位系統(hexade cimal system)最為普遍,也最方便轉換。 八進位以0、1、2~7,共八個數字來做為基底,逢8就進位,所以在八進位系統中,您只能看到0~7的八個數字。 為何二進位與八進位容易轉換呢?因為二進位的3位數正好等於八進位的1位數(23=8),故只要將二進位的值由右至左,每3位取成一單位就可直接轉換成八近位了。 請看下表:
八進位系統 二進位的000至111轉換成八進位正好是0~7。 故: 您看! 二進位的1000111101轉換成八進位是1075。 故: 您看! 二進位的1000111101轉換成八進位是1075。 這又是個問題了,如果您先寫出1075,又如何判別這是十進位或八進位呢? 在數字的表示法中,我們將基底至於數字的右下角,以示出它是哪種進位系統! 例如10758代表是八進位制的,而107510或1075 (未標示基底)則代表為十進位制的,通常我們習慣使用十進位制,故未標示基底時,就表示為十進位制。
十六進位系統 就像一斤共有16兩一樣,十六進位系統是逢16才進位,所以它需要有能代表0、1、2~15的值,這十六個值必須是一位數的,阿拉伯數字的0、1~9一共才十個值,還少了六個,所以十六進位制就以A、B、C、D、E、F來代表10、11、12、13、14、15。
各種進位之間的轉換 前面曾經說過二進位與十進位之間的轉換,其實八進位、十六進位與十進位之間的轉換也是相同的做法,只是其基底不同而已。 底下即示範將十進位的125轉換成八進位: 當您需要將十進位的數字轉換成八進位時,只要將該十進制的值,一再除以8求出它的餘數,直至商小於除數為止。 例如本例即除至商為1(已小於除數的8),最後,您只要寫下商值,再將餘數 由下至上一次寫下,即得該八進位數值:
各種進位之間的轉換 如何在二進位、八進位與十六進位之間進行轉換呢? 先前曾談到,二進位由右至左依序取3位可轉換成八進位,依序取4位可轉換成十六進位。故反過來,若要將八進位轉換成二進位,只要將八進位的每一位數轉換成3位數的二進位。 如果是十六進位呢?那只要將它每一位數轉換成4位數的二進位即可。 底下即示範將175的八進位轉換成二進位: 由上述可知1758為二進位的11111012,前置0是可以省略的。 例如十進位的069就等於69。
各種進位之間的轉換 底下再示範將十六進位的23D 轉換為二進位: 由上述可知23D8為二進位的10001111012。 同樣的,前置0是可以省略的。
各種進位之間的轉換 上面所談的都是整數之間的轉換,如果有小數呢? 底下即示範將含小數的二進位制轉換成十進制: 由上表得知