在求一個 2 進位數字 (N , K 位數 )1 補數的方法有二種:

14
1 補補 補補 2 補補補補 (N K 補補 )1 補補補補補補補補

description

補數. 在求一個 2 進位數字 (N , K 位數 )1 補數的方法有二種:. 範例:若數字系統以 1 補數表示時, (B). (-3) 10 的 2 進位表示法 (8 個位元 ) 為何 ? 因為 -3 是負數,所以只要取 3 的 1 補數值即是 -3 的表示法。 (3) 10 =(00000011) 2 ,其 1 補數值 =(11111100) 2 ,所以 (-3) 10 =(11111100) 2. 範例:若數字系統以 1 補數表示時, (A). (6) 10 的 2 進位表示法 (8 個位元 ) 為何 ? 判別正負值 , 正為 0, 負為 1 - PowerPoint PPT Presentation

Transcript of 在求一個 2 進位數字 (N , K 位數 )1 補數的方法有二種:

Page 1: 在求一個 2 進位數字 (N , K 位數 )1 補數的方法有二種:

1

補數• 在求一個 2 進位數字 (N , K 位數 )1 補數的方法有二種:

Page 2: 在求一個 2 進位數字 (N , K 位數 )1 補數的方法有二種:

2

範例:若數字系統以 1 補數表示時,

(B). (-3)10 的 2 進位表示法 (8 個位元 ) 為何 ?

• 因為 -3 是負數,所以只要取 3 的 1 補數值即是 -3

的表示法。

• (3)10=(00000011)2,其 1 補數值 =(11111100)2,

所以 (-3)10=(11111100)2

Page 3: 在求一個 2 進位數字 (N , K 位數 )1 補數的方法有二種:

3

範例:若數字系統以 1 補數表示時,

(A). (6)10 的 2 進位表示法 (8 個位元 ) 為何 ?

• 判別正負值 , 正為 0, 負為 1

• 用 2 進位表示法該值 . (6)10=(00000110)2

• 其 1 補數值為 (11111001)2

Page 4: 在求一個 2 進位數字 (N , K 位數 )1 補數的方法有二種:

4

2 補數• 在求一個 2 進位數字 (N , K 位數 )2 補數的方法有二種:– 方法一:用最大值 (K 位都是 1)+1 ,再減 N– 方法二:由 N 的 1 補數加 1 。

Page 5: 在求一個 2 進位數字 (N , K 位數 )1 補數的方法有二種:

5

範例:若數字系統以 2 補數表示時,

(A). (25)10 的值為 2 進位的多少 ?

• 25 是正數,所以最左邊位元是 0 ,所以

(25)10=(00011001)2

• 其 1 補數值 =(11100110)2,其 2 補數值 =(11100111)2

Page 6: 在求一個 2 進位數字 (N , K 位數 )1 補數的方法有二種:

6

範例:若數字系統以 2 補數表示時,

• (B). (-33)10 的值為 2 進位的多少 ?

• 因為 -33 是負數,所以只要取 33 的 2 補數值即是 -33 的表示法。

• (33)10=(00100001)2,其 1 補數值 =(11011110)2,其 2 補

數值 =(11011111)2

• 所以 (-33)10=(11011111)2

Page 7: 在求一個 2 進位數字 (N , K 位數 )1 補數的方法有二種:

7

補數加法運算– 0100 4

– + 0011 3– -----------------------------– 00111 7

– 00000100

– + 00000011– ----------------------– 000000111

– 0011 3

– + 0101 5– ----------------------------– 1000 8

– 1101 13

– + 1000 8– ----------------------------– 10101 21

Page 8: 在求一個 2 進位數字 (N , K 位數 )1 補數的方法有二種:

8

補數減法運算– 0100 4

– - 0011 3– -----------------------------– 0001 1

– 0011 3

– - 0101 5– ----------------------------– 11110 ?

Page 9: 在求一個 2 進位數字 (N , K 位數 )1 補數的方法有二種:

9

補數乘法運算– 0101 5 – * 0011 3– -----------------------------– 0101 15 – + 0101– -----------------------------

• 1111

Page 10: 在求一個 2 進位數字 (N , K 位數 )1 補數的方法有二種:

10

補數除法運算

11

0011√ 01011

-------------------------

0011

101

011-------------------------

10

Page 11: 在求一個 2 進位數字 (N , K 位數 )1 補數的方法有二種:

11

8 補數與 7 補數• (72)8 以 8 補數表示時• 82 - (72)8

• = 64 – 58• = 6

• (72)8 以 7 補數表示時• 82 - (72)8 –1

• = 64 – 58 –1• = 5

Page 12: 在求一個 2 進位數字 (N , K 位數 )1 補數的方法有二種:

12

浮點數表示法• 以一個 4 字元 (32Bit) 的浮點數 (Floating Point)表示法為例,我們必須先將數值處理成正規化型式 (Normalized Form) ,其型式是將任一數值表示成 :「 +- A x 2N 」。其中 A 值範圍為: 0.1 <= A < 1

• 即 A 要表示成小數點型式,且小數之後第 1 位是1 。 N 則是次方數。經過正規化型式,可以將一個數值分成三部分,如圖 2-8 。

0 23 24 30 31

特性數 小數

位元編號

符號數

24 位元 7 位元

Page 13: 在求一個 2 進位數字 (N , K 位數 )1 補數的方法有二種:

13

浮點數表示法• 符號數 (Sign) :

– 最左邊第 1 個位元, 1 代表負數, 0 代表正數• 特性數 (Exponent ,亦稱為指數 ) :

– 左邊數起的第 2 個到第 8 個位元 ( 共 7 個 ) ,代表此數的次方數。但是次方數還是要有正負號之分,例如 25

或 2-3,所以此部分要能區分出正負數,最簡單的方法是前半 段數字代表負數,後半段數字代表正數,例如以 7 個位元為例, 27=128 ,代表 0~127 。所以 0~63 代表負數 -64 到 -1 , 64~127 代表正數 0 到 63

• 小數 (Mantissa ,亦稱為尾數或假數 ) :– 一般是佔左邊數起的第 9 個到第 32 個位元 ( 共 24 個 ) ,代表此數的小數資料

Page 14: 在求一個 2 進位數字 (N , K 位數 )1 補數的方法有二種:

14

• 範例:將 15.5 轉換成正規化型式的浮點數?• 解答:

– 1. 先將 15.5 轉換為 2 進位, (15.5)10= (1111.1)2

– 2. 將數值 (1111.1)2正規化 = (0.11111)2 x 24

– 3. 取其各部分的值:– 符號數: 0 因為數值是正數– 特性數: (4 + 64)10=(68)10=(1000100)2

– 小數:前面 5 個 11111 ,其餘皆是 0 ,所以是– 111110000000000000000000– 4. 合併浮點數 = 符 特 小– 號 性– 數 數 數– 0 1000100 11111000000000000000000

0

– 以 Byte 表示時,即 01000100 11111000 00000000 00000000