2.6 二進位減法


2.6.1.一般減法運算:

一般減法運算中二進位數字減法的四個基本規則如下:

22.gif (1523 bytes)

24.gif (946 bytes) 較小數減較大數時候,必須向左邊一行借位

          23.gif (344 bytes)


例2.14:求二進

位數的減法運算及其相對等的十進位數減法的運算。( 無借位)

(a)10B-01B       (b)11B-10B

解:(a)     二進位之差                 十進位之差

                25.gif (1267 bytes)

    (b)     二進位之差                 十進位之差

                 26.gif (478 bytes)

例2.15:求二進位數的減法運算。(有借位)

101B-010B之差

解:

步驟一.由最低有效位元(LSB)開使相減,1-0=1

27.gif (281 bytes)

   步驟二.由右邊第二行相減時,必須向左邊一行借位,10-1=1

28.gif (293 bytes)

   步驟三.再做最左一行相減時因1已經被借位,所以0-0=0

29.gif (299 bytes)


2.6.2.2'S補數減法運算:

(1)1'S的補數表示法:

二進位數的1'S補數,是將數字中所有的0變成1,1變成0。用來當負數用的1'S補數。是令其符號位元為1。而將其數值由二進位數改成1'S補數。下表2.1為八位元1'S補數形式之正負數表示法

表2.1  1'S補數負數表示法

正負數值 符號位元 數值大小
+3 0 0000011
+2 0 0000010
+1 0 0000001
0 0 0000000
-1 1 1111110
-2 1 1111101
-3 1 1111100

例2.16:求(a) 57H (b) 83H 的1's補數負數表示法

解:

30.gif (3663 bytes)


(2)2'S的補數表示法:

二進位數的2'S補數,是以1'S補數再加上1即得 。而二進位數的2'S補數正可以表示該數二進位數的負數。下表2.2為八位元2'S補數形式之正負數表示法。

表2.2  2'S補數負數表示法

正負數值 符號位元 數值大小
+3 0 0000011
+2 0 0000010
+1 0 0000001
0 0 0000000
-1 1 1111111
-2 1 1111110
-3 1 1111101

例2.17:求(a) 62H (b) C3H 的2'S補數負數表示法

31.gif (2878 bytes)


(3)2'S補數減法運算:

Step1:將被減數加上減數的2'S補數,再將進位(end-round carry,端迴進位)"捨棄"即得到差

Step2:根據2'S補數的負數表示法,若差值的MSB=0時,表示該差值為正數,若差值MSB=1時,表示該差值為 負數

32.gif (1952 bytes)


例2.18:利用2'S補數來執行減法運算

(a) 1110B-1001B (b) 1001B-1110B

33.gif (3067 bytes)


到上一頁 到下一頁 回章節首頁