33
SPOTLIGHT 數數數數數數數數數 1

SPOTLIGHT

Embed Size (px)

DESCRIPTION

計算機概論. 2. SPOTLIGHT. 數字系統與編碼系統. 數字系統與編碼系統. 相信大家都已經知道,電腦是透過0與1的 位元 (bit) 來處理資 料的數位電子裝置。人類社會所使用的 數字系統 (number system) ,或稱為數值系統,是早在文明還未進化的時代就已經 因為十根手指頭的關係而採用了十進制至今。. 068. 不同的數字系統:時間、重量、長度. 因此以星期來看,可以算是七進制 ( 雖然沒有星期零 ) ,以天來 看,就是廿四進制,以小時和分鐘來看就是六十進制。. 068. 不同的數字系統:時間、重量、長度. - PowerPoint PPT Presentation

Citation preview

SPOTLIGHT

數字系統與編碼系統

1

相信大家都已經知道,電腦是透過0與1的位元 (bit) 來處理資料的數位電子裝置。人類社會所使用的數字系統 (number

system) ,或稱為數值系統,是早在文明還未進化的時代就已經因為十根手指頭的關係而採用了十進制至今。

068

2

068

不同的數字系統:時間、重量、長度

因此以星期來看,可以算是七進制 ( 雖然沒有星期零 ) ,以天來看,就是廿四進制,以小時和分鐘來看就是六十進制。

3

069

不同的數字系統:時間、重量、長度資訊世界的數字系統:二進制、八進制、十六進制

為了要讓電腦環境裡的二進制數字,能方便習慣於十進制的人們處理、記憶,因此數學界透過了八進制 (octal system) 和十六進制 (hexadecimal system) 來表示電腦裡的各種數字。畢竟,要讓一般人記住或閱讀由0與1組成的一長串資料,實在是相當困難。

4

069

不同的數字系統:時間、重量、長度資訊世界的數字系統:二進制、八進制、十六進制 ( 續 )

因為二進制若以 3 個位元來算時,是 000 到 111 之間,在數量上一共是 8 個,而若以 4 位元來算,就是 0000 到 1111 之間,為什麼電腦裡的二進制系統要轉換成八進制或十六進制,而不挑七或十三的其他進制來轉換呢?在數量上則是 16 個。因此,才會以八進制和十六進制來處理。

5

069

不同的數字系統:時間、重量、長度資訊世界的數字系統:二進制、八進制、十六進制 ( 續 )

6

069

不同的數字系統:時間、重量、長度進制轉換

雖然我們的日常生活裡不太會用到八進制與十六進制,但如果在處理電腦的計算時,要將八進制或十六進制轉換成二進制,一般在數學上都會先將數字轉換成十進制,不僅如此,若要將二進制的數字轉換成八進制或十六進制,也是要先轉換成十進制。十進制是人類最為熟悉的數字系統。另外,為了避免在標示時搞不清楚所使用的是幾進制,要是想特別指明數字的進制時,會以括號把該數字框住,並且在後方加上小字的數字,如十進制的 365 則為: (365)10 。

7

069

不同的數字系統:時間、重量、長度進制轉換 ( 續 )

(1101)2 的四個位數中,右邊算起的第一個位數,也就是所謂的最小位數 (least significant digit, LSD ,或稱為最低位數或最小位元 MSB) 就代表的 2 的 0 次方,也就是 1 ;第二的位數為 2 的 1 次方,即是 2 ;第三個位數乃 2 的 2 次方,等於 4 ;最左邊那個位數,即所謂的最大位數 (most significant digit, MSD ,或稱為最高位數或最大位元 MSB) 就是 2 的 3 次方,所以是 8 。例如數字(1101)2 是十進制中的 13 ,因為從左邊開始累積的數量為: (23

× 1) + (22 × 1) + (21 × 0) + (20 × 1) = 8 + 4 + 1 = 13 。

8

070

不同的數字系統:時間、重量、長度進制轉換 ( 續 )

(82 × 3) + (81 × 1) + (80 × 6) = 192 + 8 + 6 = 206 。而十六進制的(316)16 就是十進制的: (162 × 3) + (161 × 1) + (160 × 6) = 768 + 16

+ 6 = 790 。(101101)2 = (25 × 1) + (24 × 0) + (23 × 1) + (22 × 1) + (21 × 0) + (20

× 1) = 32 + 8 + 4 + 1 = 45

(524)8 = (82 × 5) + (81 × 2) + (80 × 4) = 320 + 16 + 4 = 340

(2BF)16 = (162 × 2) + (161 × 11) + (160 × 15) = 512 + 176 + 15 = 703

9

070

不同的數字系統:時間、重量、長度進制轉換 ( 續 )

10

071

不同的數字系統:時間、重量、長度進制轉換 ( 續 )

703 除以 16 得出 43 餘 15 , 因此最右邊的 LSD 位數是 15 ,也就是F剩下的 43 仍大於 16 ,所以還要再除,得出 2 餘 11 ,第二位數為11 ,也就是B因為 2 小於 16 ,故不須再除,就拿著當最左邊的 MSD 位數,因此右起第三位數為 2

最後把這些得到的位數串起來,右起:F、B、2= (2BF)16

11

071

不同的數字系統:時間、重量、長度進制轉換 ( 續 )

12

071

不同的數字系統:時間、重量、長度進制轉換 ( 續 )

340 除以 8 得出 42 餘 4 ,因此最右邊的 LSD 位數是4剩下的 42 仍大於 8 ,所以還要再除,得出 5 餘 2 ,第二位數為2因為 5 小於 8 ,故不須再除,就拿著當最左邊的位數,因此右起第三位數 MSD 為5最後把這些得到的位數串起來,右起:4、2、5= (524)8

13

072

不同的數字系統:時間、重量、長度進制轉換 ( 續 )

14

071

不同的數字系統:時間、重量、長度進制轉換 ( 續 )

45 除以 2 得出 22 餘 1 , 因此最右邊的位數 LSD 是1剩下的 22 仍大於 2 ,所以還要再除,得出 11 餘 0 ,右起第二位數為0剩下的 11 仍大於 2 ,所以還要再除,得出 5 餘 1 ,第三位數為1剩下的 5 仍大於 2 ,所以還要再除,得出 2 餘 1 ,第四位數為1剩下的 2 仍大於 2 ,所以還要再除,得出 1 餘 0 ,第五位數為0右起第六位數為 1 ,因為 1 小於 2 ,故不須再除,就拿著當最左邊的位數,因此右起第六位數 MSD 為1最後把這些得到的位數串起來,右起:1、0、1、1、0、1= (101101)2

15

072

不同的數字系統:時間、重量、長度進制轉換 ( 續 )

Windows 7 作業系統中所附的「小算盤」裡,已經具備了二進制、十進制、八進制、十六進制之間的轉換功能。使用時可以透過:「開始」→「所有程式」 → 「附屬應用程式」 → 「小算盤」進入此程式後,將工具列的「檢視」切換至「程式設計師」模式即可。

16

072

不同的數字系統:時間、重量、長度小數點

在學會了二進制、十進制、八進制、十六進制之間的轉換之後,接著要來談談數字系統裡的另一個話題:小數點 (radix point

,簡稱為 point) 。小數點常出現在需要精確表示的數字裡,並且用來分隔整數 (whole number) 與小數 (fractional number) 。除了十進制會用到小數點,二進制以及其他進制當然也會用到。

在小數的部分,因為離小數點最近的位數是小數裡的最大位元,離小數點最遠的位數是小數裡的最小位元,所以,在轉換時就會依據小數點算起,按照負次方的順序來類推。

17

073

不同的數字系統:時間、重量、長度小數點 ( 續 )

(23 × 1) + (22 × 0) + (21 × 1) + (20 × 0) + (2-1 × 1) + (2-2 × 1) + (2-3 × 0) + (2-4 × 1) = 8 + 2 + 0.5 + 0.25 + 0.0625 = (10.8125)10

另一方面,如果要將具有小數的十進制數字轉成二進制時,其計算的方式也是要將整數與小數分開處理。

18

073

不同的數字系統:時間、重量、長度小數點 ( 續 )

53 除以 2 得出 26 餘 1 ,因此最右邊的位數是1剩下的 26 仍大於 2 ,所以還要再除,得出 13 餘 0 ,右起第二位數為剩下的 13 仍大於 2 ,所以還要再除,得出 6 餘 1 ,第三位數為1剩下的 6 仍大於 2 ,所以還要再除,得出 3 餘 0 ,第四位數為0剩下的 3 仍大於 2 ,所以還要再除,得出 1 餘 1 ,第五位數為1因為 1 小於 2 ,故不須再除,就拿著當最左邊的位數,因此右起第六位數為1最後把這些得到的位數串起來,右起:1、1、0、1、0、1= (110101)2

19

073

不同的數字系統:時間、重量、長度小數點 ( 續 )

20

074

不同的數字系統:時間、重量、長度小數點 ( 續 )

整數部分 (53)10 :53 除以 8 得出 6 餘 5 ,因此最右邊的 LSD 位數是5因為 6 小於 8 ,故不須再除,就拿著當最左邊的位數,因此右起第二位數 MSD 為6最後把這些得到的位數串起來,右起:5、6= (65)8

小數部分 (0.125)10 :小數 0.125 乘以 8 得到 1 ,取下第一個超過小數點的整數結果 ( 即使是零也要取 ) ,拿來當最終目的數字的最大位數 (MSD) ,所以是1;因為之後遇到剩下的小數部分,第一個數字已經為0,所以完成整個運算。因此,取得的小數點後數字為:1= (0.1)8

最後把整數和小數部分拼起來,原本的 (53.125)10 就成為: (65)8

+ (0.1)8 = (65.1)8

21

074

不同的數字系統:時間、重量、長度小數點 ( 續 )

整數部分 (53)10 :53 除以 16 得出 3 餘 5 ,因此最右邊的 LSD 位數是5因為 3 小於 16 ,故不須再除,就拿著當最左邊的位數,因此右起第二位數 MSD 為3最後把這些得到的位數串起來,右起:5、3= (35)16

小數部分 (0.125)10 :小數 0.125 乘以 16 得到 1 ,取下第一個超過小數點的整數結果 ( 即使是零也要取 ) ,拿來當最終目的數字的最大位數 (MSD) ,所以是2;因為之後遇到剩下的小數部分,第一個數字已經為0,所以完成整個運算。因此,取得的小數點後數字為:2= (0.2)16

最後把整數和小數部分拼好,原本 (53.125)10變為: (35)16 + (0.2)16 = (35.2)16

22

074

不同的數字系統:時間、重量、長度正負數

正負數的使用,正數 (positive number) 的觀念很簡單,就是手上有的東西。而在負數 (negative number) 方面,最早出現的場合就是「賒欠」和「不足」。

對於數學中關於負數的概念,在運算時其實也有相減 (miuns)

的意思。

一般來說,要處理二進制正負數的方式有: (1) 最大位元表示法; (2) 1的補數表示法; (3) 2的補數表示法。

23

075

不同的數字系統:時間、重量、長度正負數 ( 續 )

在二進制中,會使用的補數有1的補數與2的補數兩種。1的補數 (1‘s complement) 是指兩數的和為 1 ,則此兩數互為 1 的補數,即 1 和 0 互為 1 的補數。

而2 的補數 (2‘s complement) 則是指將原數變成1 的補數之後再加上 1 。

這中間最大的差別就在於,使用1的補數還是會+ 0 和- 0 的情況,而2的補數則不會,所以2的補數是最在這些表示法中,最適合用來表示二進制正負數整數的方法。如果我們以一個4 位元 (bit) 的二進制整數來說明的話,或許就能很容易地理解了。

24

075

不同的數字系統:時間、重量、長度正負數 ( 續 )

25

075

編碼系統

既然電腦是透過二進制來處理所有的資料,因此人們需要用到的各種文字 (letter) 、符號 (symbol) 、數字 (digit) 都要透過一套放諸四海皆準的編碼系統 (coding system) 來規範,才能讓不同電腦間的資料能互相流通。

26

075

編碼系統ASCII 與 Unicode

電腦裡最常用到的字元符碼格式 (character coding format) :ASCII 、 EBCDIC 以及 Unicode ,這三種符碼格式相互轉換。美國標準資訊交換碼 ASCII( 發音為 Ask-Ee)American Standard

Code for Information Interchange ,使用了 7 位元也就是以 128

個不同的排列組合 (27=128) ,來表達不同的字元。而 ASCII 碼還有一個變形稱之為延伸 ASCII (extended ASCII) ,它使用了八位元也就是以 128 再加上一個位元,總計 256 個狀態 (28=256)

來表示。

27

076

編碼系統BIG-5 與 CNS11643

而在各個非英語系的國家裡,為了要正確呈現其文字 ) ,就需要發展出一套適合自身語言的文字內碼,甚至是連同樣使用羅馬字為基礎的歐洲國家,也會使用像是 ISO8859 的編碼格式。在臺灣以及部分華人地區通用的正體中文,最早就是以資策會在1984年聯合幾家廠商所推出的 BIG-5( 大五碼 ) 來編排,以適用於當年的中文電腦軟體。

28

076

編碼系統BIG-5 與 CNS11643 ( 續 )

29

077

編碼系統ISO 10646 與 Unicode

雖然被稱為統一碼或萬國碼的 Unicode 允許了各國語言文字的編碼空間,但在此之前,國際間其實已經有了一些具有規模的國際編碼,最知名的就是出自於國際標準化組織。

這個早在 1984 年就已經問世的編碼標準,在推出之後被命名為通用符碼字元集 (Universal Coded Character Set, UCS) 。儘管有了這些萬國語言編碼的制定,而且當今許許多多的網路服務都可以透過瀏覽器軟體來進行,但我們也要知道如果語言編碼的選擇不當,將可能導致畫面出現亂碼

30

078

編碼系統ISO 10646 與 Unicode ( 續 )

31

078

編碼系統ISO 10646 與 Unicode ( 續 )

32

078

編碼系統ISO 10646 與 Unicode ( 續 )

33