在二進制的減法中,是以加法來處理減法,所以A-B可以看成是A+(-B)。而負數又是以2的補數來表示,將A+B的2的補數後相加,如果有進位,表示結果為正數,直接將進位捨去,就是答案;如果沒有進位,表示結果為負數,將結果取2的補數,再加上負號,就是答案。

儲存格F1:=RIGHT("00000000"&DEC2BIN(C1),8)

串接"00000000",是因為有些二進制數不滿8位元。

儲存格F2:=RIGHT("00000000"&DEC2BIN(-C2),8)

儲存格F5:=RIGHT("000000000"&DEC2BIN(255-BIN2DEC(F3)),8)

儲存格F7:=RIGHT("00000000"&DEC2BIN(BIN2DEC(--F5)+1),8)

--F5的用意是將文字轉成數字,才能進一步運算。

儲存格H3:=IF(LEFT(F3,1)="1","有進位,表示結果為正數。","")

儲存格H4:=IF(LEFT(F3,1)="1","直接將進位捨去,答案="&BIN2DEC(RIGHT(F3,8)),"")

儲存格H6:=IF(LEFT(F3,1)="0","沒有進位,表示結果為負數。","")

儲存格H7:=IF(LEFT(F3,1)="0","取2的補數加上負號,答案="&-BIN2DEC(--F7),"")

 

或許這個模擬補數運算的試算表,對於課程上會有些幫助。

arrow
arrow
    全站熱搜

    vincent 發表在 痞客邦 留言(0) 人氣()