Presentation is loading. Please wait.

Presentation is loading. Please wait.

聯合大學資工系 周念湘 BCC 數字系統. 聯合大學資工系 周念湘 2 r 進位:轉成 10 進位 r 代表「基底」  10 進位: r = 10  2 進位: r = 2 D r : 表示某個 r 進位的數 (r 不寫,表.

Similar presentations


Presentation on theme: "聯合大學資工系 周念湘 BCC 數字系統. 聯合大學資工系 周念湘 2 r 進位:轉成 10 進位 r 代表「基底」  10 進位: r = 10  2 進位: r = 2 D r : 表示某個 r 進位的數 (r 不寫,表."— Presentation transcript:

1 聯合大學資工系 周念湘 nschou@nuu.edu.tw1 BCC 數字系統

2 聯合大學資工系 周念湘 nschou@nuu.edu.tw 2 r 進位:轉成 10 進位 r 代表「基底」  10 進位: r = 10  2 進位: r = 2 D r : 表示某個 r 進位的數 (r 不寫,表 r=10)  D r ≡ (d n-1 d n-2 …d 0 ‧ d -1 d -2 …d -q ) r  135.246 10 = (1*10 2 +3*10 1 +5*10 0 +2*10 -1 +4*10 -2 +6*10 -3 ) 10  147.256 8 = (1*8 2 +4*8 1 +7*8 0 +2*8 -1 +5*8 -2 +6*8 -3 ) 10 就某一個「數量」而言,不同進位,只是表示法不同, 他們都是表示「同一個數量」,理論上必須相同。  整數:各進位間,有「 1 對 1 」對應  實數: 10 進位轉成 2 進位時,可能無法用有限的位數表示! 在電腦的世界中, 整數、實數以不同方式存放

3 數字系統 聯合大學資工系 周念湘 nschou@nuu.edu.tw 3 10 進位:轉成 r 進位 「整數、小數」分開算  整數:連除 r ,取餘數  小數:連乘 r ,取整數 【範例】 766.28125 10 =( ? ) 8  766.28125 10 =(1376.22) 8

4 數字系統 聯合大學資工系 周念湘 nschou@nuu.edu.tw 4 整數: n 位數, r 補數 r 代表「基底」  10 進位: r = 10  2 進位: r = 2 D r : 表示某個 r 進位的整數  我們必須明訂這個整數是幾位數 ( 令為 n), 位數不夠需補 0  D r ≡ (d n-1 d n-2 …d 0 ) r r 補數,代表 r 進位系統中的「負數」 有了 r 補數,我們就可用加法來做減法,簡化硬體線路  ∵ A-B = A+(-B) = A+(B 的 r 補數 )  ∴ -B= B 的 r 補數

5 數字系統 聯合大學資工系 周念湘 nschou@nuu.edu.tw 5 整數: n 位數, r 補數 既然,「 r 補數」代表 r 進位系統中的「負數」  『 D r ≡ (d n-1 d n-2 …d 0 ) r >0 』 的 r 補數= -D r = r n -D r  ∵ D r + -D r =0 而 D r +(r n -D r ) = r n = (1 n 0 n-1 0 n-2 …0 0 ) r  ∵我們只計 n 位數 ∴將 1 n 丟掉 ( 忽略 ) 即得到正確的答案 0  例子:求 (1234) 10 的 10 補數: 求 (1011) 2 的 2 補數: 10000 10000 1234 (- 1011 (- ----------- ------------- 8766 = (10 4 -1234 10 ) 0101 = (2 4 -1011 2 )  1234 (+ 1011 (+ ----------- ------------- 10000 = (10 4 10 ) 10000 = (2 4 )

6 數字系統 聯合大學資工系 周念湘 nschou@nuu.edu.tw 6 整數: n 位數, r 補數 「 r 補數」比較不好算  「 r-1 補數」 +1, 令 r’=r-1  『 D r ≡ (d n-1 d n-2 …d 0 ) r 』 的 r-1 補數= -D r -1 = r n -1-D r = (r’ n-1 r’ n-2 …r’ 0 ) r - (d n-1 d n-2 …d 0 ) r  例子:求 (1234) 10 的 9 補數: 求 (1011) 2 的 1 補數: 9999 1111 1234 (- 1011 (- ----------- ------------- 8765 = (10 4 -1-1234 10 ) 0100 = (2 4 -1-1011 2 )  「 r 補數」 = 「 r-1 補數」 +1  例子:求 (1234) 10 的 10 補數: 求 (1011) 2 的 2 補數: 8765 = (10 4 -1-1234 10 ) 0100 = (2 4 -1-1011 2 ) 1 (+ 1 (+ ------------- ------------- 8766 = (10 4 -1234 10 ) 0101 = (2 4 -1011 2 ) 剛好: 1  0, 0  1

7 數字系統 聯合大學資工系 周念湘 nschou@nuu.edu.tw 7 二進位 電腦為何使用「二進位」?  因為電腦的「元件」都是「雙態 (2 種狀態 ) 」元件 二極體: P 極、 N 極 磁蕊 :南極、北極 電壓 :高電壓、低電壓  這些「雙態」元件的狀態都可利用「電」改變之 其中一種狀態稱之為「 0 」,另一種狀態稱之為「 1 」 若該元件可持續維持在某一狀態,直至我們改變它為止, 則我們稱之為「記憶體元件」  1 個這樣的記憶體元件,我們稱其為「一個 bit 」

8 數字系統 聯合大學資工系 周念湘 nschou@nuu.edu.tw 8 二進位 為何「元件」在任一時間點,只能存 1 或 0 ?  i.e. 為何不能同時存 1 和 0 ?  以「磁蕊」為例說明之: 假設南極為 0 ,北極為 1 同一個磁蕊同一時間只能有一種極性, 因此, 只能有一種狀態, 要麼是 0, 要麼是 1 因此, 當有人說「把 0 存入某記憶體 ( 元件 ) 中」 : 意指「將該記憶體 ( 元件 ) 的狀態改為 0 」

9 數字系統 聯合大學資工系 周念湘 nschou@nuu.edu.tw 9 bit | nibble | Byte 任何資料在電腦中, 必是以「 0101… 」的形式存入, 該形式稱之為「 bit pattern 」 吾人以「 β 2 」 表示之。 10 進位無號整數 ( α 10 ) 轉成 2 進位 ( β 2 ) 寫成「 α 10 = β 2 」 1bit 只能表示 2 種狀態  當我們需要多種狀態時, 就需要多個 bit 組合起來,看成一組。 nibble: 4 bits 看成一組  有 2 4 = 16 種狀態 (bit pattern) Byte : 8 bits 看成一組  有 2 8 = 256 種狀態 (bit pattern) 4bit :雖然有 16 種狀態 (bit pattern) , 但是,任一時間點, 只能「存」其中一種狀態 (bit pattern) Bit pattern16 無號整數 000000 000111 001022 001133 010044 010155 011066 011177 100088 100199 1010A10 1011B11 1100C12 1101D13 1110E14 1111F15

10 數字系統 聯合大學資工系 周念湘 nschou@nuu.edu.tw 10 有號整數存入電腦的方式: n-bits 2 補數 (2’s complement) :儲存負整數  1 補數 (1’s complement) :為了方便計算 2 補數 Excess 2 n-1 :儲存實數的指數

11 數字系統 聯合大學資工系 周念湘 nschou@nuu.edu.tw 11 1’s complement : 1 補數 (1’s complement): n-bits  D 10  β 2 = α 10  formula: D 10 ≧ 0  D 10 =B 2 ≡ β 2 D 10 < 0  (1) -D 10 =P 2 ≧ 0 (2) β 2 ≡ 「 P 2 的 1 補數」 =~P 2 =(2 n -1) 10 -P 2 =(2 n -1) 10 +D 10 = α 10 ~P 2 ≡ {P 2 各 bit : 0  1, 1  0} 兩種 0 :+ 0, -0  以 4-bits 為例: 0000, 1111 有號整數 1 補數

12 數字系統 聯合大學資工系 周念湘 nschou@nuu.edu.tw 12 2’s complement : 2 補數 (1’s complement)+1  D 10  β 2 = α 10  formula: D 10 ≧ 0  D 10 =B 2 =β 2  MSB=0 D 10 < 0  //D 10 =-4 10 (1) -D 10 = P 2 //P 2 =4 10 =0100 2 (2) β 2 = P 2 的 2 補數 (1100 2 ) =~P 2 +1 =(2 n -1) 10 -P 2 +1 =(2 n ) 10 +D 10 = α 10  MSB=1 X-Y=X+(-Y) -Y=Y 的 2 補數 2 補數 12

13 數字系統 聯合大學資工系 周念湘 nschou@nuu.edu.tw 13 2’s complement : 2 補數 D 10 < 0 「令 S’ 2 = D’ 10 」  D 10  β 2 ≡(1S’) 2 = α 10 =2 n +D 10  =2 n-1 + S’ 2 =2 n-1 +D’ 10   D 10 = 2 n-1 + D’ 10 -2 n = D’ 10 -2 n-1  舉例: D 10 =-6  1010 2 =10 10 =2 3 +010 2 S’ 2 =010 2 = 2 10 = D’ 10 D 10 =-6=2 10 -2 3 = D’ 10 -2 3 = D’ 10 -2 4-1

14 數字系統 聯合大學資工系 周念湘 nschou@nuu.edu.tw 14 (A+B) 2 : illegal : c n ⊕ c n-1 =1 C=c n c n-1 c n-2 c n-3 …c 0 A= a n-1 a n-2 a n-3 …a 0 B= b n-1 b n-2 b n-3 …b 0 -2 n-1 ≦ A+B=Z < 2 n-1 (c n =0) ⊕ (c n-1 =1)=1  overflow  c n =0, c n-1 =1  a n-1 =b n-1 =0  C=01c n-2 c n-3 …c 0 A= 0a n-2 a n-3 …a 0 >0 B= 0b n-2 b n-3 …b 0 >0 (+ ------------------------------- Z= 1z n-2 z n-3 …z 0 <0 ( 正+正變負 )  c n-1 =1  A+B ≧ 2 n-1 →← overflow

15 數字系統 聯合大學資工系 周念湘 nschou@nuu.edu.tw 15 (A+B) 2 : illegal : c n ⊕ c n-1 =1 C=c n c n-1 c n-2 c n-3 …c 0 A= a n-1 a n-2 a n-3 …a 0 B= b n-1 b n-2 b n-3 …b 0 -2 n-1 ≦ A+B=Z < 2 n-1 (c n =1) ⊕ (c n-1 =0)=1  underflow  c n =1, c n-1 =0  a n-1 =b n-1 =1 (A,B<0)  C=10c n-2 c n-3 …c 0 A= 1a n-2 a n-3 …a 0 <0 令 A=1A’ B= 1b n-2 b n-3 …b 0 <0 (+ 令 B=1B’ ------------------------------- Z= 0z n-2 z n-3 …z 0 ≧ 0 ( 負+負變正 )  c n-1 =0  0 ≦ A’+B’ 0) A+B=(A’- 2 n-1 )+(B’- 2 n-1 ) =A’+B’- 2 n <2 n-1 -2 n <-2 n-1 →← underflow

16 數字系統 聯合大學資工系 周念湘 nschou@nuu.edu.tw 16 (A+B) 2 : legal : c n ⊕ c n-1 =0 C=c n c n-1 c n-2 c n-3 …c 0 A= a n-1 a n-2 a n-3 …a 0 B= b n-1 b n-2 b n-3 …b 0 -2 n-1 ≦ A+B < 2 n-1 c n ⊕ c n-1 =0  c n =1, c n-1 =1  drop c n 試證明 A * B 0  c n =0, c n-1 =0  do nothing 試證明 A * B<0 則 A + B<0  A+B<0 (MSB=1) 轉成 10 進位時, 結果需再取 2 補數,前面加上負號。

17 數字系統 聯合大學資工系 周念湘 nschou@nuu.edu.tw 17 (A*B) 2 :「 left shift 」「+」

18 數字系統 聯合大學資工系 周念湘 nschou@nuu.edu.tw 18 (A/B) 2 : 「 left shift 」「 - 」 11001100 2 /101 2 R1 = 11001100 2 -(101) 2 *2 5  Q1=1*2 5 = 101100 2 R2 = 101100 2 -(101) 2 *2 3  Q2=1*2 3 = 100 2 Ans: Q=Q1+Q2=100000 2 +1000 2 =101000 2 =40 10 R=R2 = 100 2 = 4 10 驗證: (11001100) 2 /101 2 =204 10 /5 10 =40 餘 4 減法會用「加 2 補數」做

19 數字系統 聯合大學資工系 周念湘 nschou@nuu.edu.tw 19 Excess 2 n-1 表示法 excess-8 (2 3 )  D 10  β 2 = α 10 = ( D +2 n-1 ) 10 D 10 = 6  β 2 =1110 2 = 14 10 =( 6 +8) 10  D 10 ≧ 0  β 2 是 2 n-1 -D 10 的 2 補數  D 10 < 0  β 2 是 2 n-1 +D 10 的 2 進位  β 2 = α 10  α 10 - 2 n-1 β 2 = α 10  α 10 if α 10 <2 n-1 α 10 - 2 n otherwise 7 6 5 4 3 2 1 0 2’s complement Excess-8 15 14 13 12 11 10 9 8

20 數字系統 聯合大學資工系 周念湘 nschou@nuu.edu.tw 20 實數 (Floating Point) 儲存方式 以 8bits 舉例說明:

21 數字系統 聯合大學資工系 周念湘 nschou@nuu.edu.tw 21 IEEE 754 : 1. single precision 31 0 30Biased Exponent 23 excess-bias 22 significand 0 Mantissa 31 Sign ExponentBiased expMantissaValue -126 to 1271 to 254any+/- real 128255 ( 11111111 2 )0 (+/- ) ∞ 128255 ( 11111111 2 )≠0≠0NaN -127 0 ( 00000000 2 )≠0≠0underflow +127 value=(-1) S * (1+M) * 2 (BE-Bias) (Bias=127)

22 數字系統 聯合大學資工系 周念湘 nschou@nuu.edu.tw 22 IEEE 754 : 1. single precision 31 0 30Biased Exponent 23 excess-127 22 significand 0 Mantissa 31 Sign value=(-1) S * (1+M) * 2 (BE-Bias) (Bias=127) -3.1415 = (-1) 1 * (11.00100100001 … ) = (-1) 1 * (1.100100100001 … ) * 2 1 = (-1) 1 * (1.100100100001 … ) * 2 (128-127) 10000000

23 數字系統 聯合大學資工系 周念湘 nschou@nuu.edu.tw 23 IEEE 754 : 2. double precision ExponentBiased expMantissaValue -1022 to 1023 1 to 2046any+/- real 10242047 ( 11…11 2 )0 (+/- ) ∞ 10242047 ( 11…11 2 )≠0≠0NaN -1023 0 ( 00…00 2 )≠0≠0underflow +1023 value=(-1) S * (1+M) * 2 (BE-Bias) (Bias=1023) 64 0 62Biased Exponent 52 excess-1023 51 significand 0 Mantissa 63 Sign

24 數字系統 聯合大學資工系 周念湘 nschou@nuu.edu.tw 24 IEEE 754 : 2. double precision 64 0 62Biased Exponent 52 excess-1023 51 significand 0 Mantissa 63 Sign value=(-1) S * (1+M) * 2 (BE-Bias) (Bias=1023) -3.1415 = (-1) 1 * (11.00100100001 … ) = (-1) 1 * (1.100100100001 … ) * 2 1 = (-1) 1 * (1.100100100001 … ) * 2 (1024-1023) 10000000000


Download ppt "聯合大學資工系 周念湘 BCC 數字系統. 聯合大學資工系 周念湘 2 r 進位:轉成 10 進位 r 代表「基底」  10 進位: r = 10  2 進位: r = 2 D r : 表示某個 r 進位的數 (r 不寫,表."

Similar presentations


Ads by Google