日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

3、论二进制减法

發(fā)布時(shí)間:2024/1/3 综合教程 40 生活家
生活随笔 收集整理的這篇文章主要介紹了 3、论二进制减法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

根據(jù)上面的加法,我們覺(jué)得的確門邏輯能解決這種加法的進(jìn)位問(wèn)題。可是減法呢?

減法涉及到借位,并且還要判斷位數(shù)能不能借,不能借得向更高的位去借,這種邏輯貌似門實(shí)現(xiàn)起來(lái)復(fù)雜度相當(dāng)之高?其實(shí)不然

如何避免這種復(fù)雜的借位,最好的辦法,向最高位的再高一位借一位,那么就涉及不到那么多位的借位了。也就是說(shuō)8位,我們借第九位的一位。所以得到

253-176=77的情況下,我們可以借個(gè)1000,因?yàn)闇p1000只涉及到最高位的門邏輯,然后用999減去176,因?yàn)?99和176都是三位,用相同數(shù)量的門電路可以實(shí)現(xiàn)了,結(jié)果再加1.而176我們就叫做999的補(bǔ)數(shù)。

現(xiàn)在結(jié)果編程計(jì)算253+999-176+1-1000的情況。

但是如果是176-253呢?你可能會(huì)想到跟前面一樣,176+999-253+1-1000,但是923-1000導(dǎo)致了借位,這樣我們只操作最高位高一位的門邏輯是無(wú)法實(shí)現(xiàn)的。我們不如直接176+999-253-999,讓它們都用相同數(shù)據(jù)量級(jí)的門邏輯計(jì)算,不過(guò)922-999這一步我們把它變成999-922,然后再加個(gè)負(fù)符號(hào)。

現(xiàn)在我們演化成二進(jìn)制來(lái)看看。

253-176 變成二進(jìn)制位

1 1 1 1 1 1 0 1

-1 0 1 1 0 0 0 0

—————————

? ? ? ? ? ? ? ?

第一步、我們使用11111111(255)減去減數(shù):

1 1 1 1 1 1 1 1

-1 0 1 1 0 0 0 0

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

0 1 0 0 1 1 1 1

這種計(jì)算對(duì)于門電路來(lái)說(shuō)很簡(jiǎn)單,只需要對(duì)減數(shù)求反,將0變成1,1變成0.

第二步、把被減數(shù)和剛才我們求得的對(duì)1的補(bǔ)數(shù)相加:

1 1 1 1 1 1 0 1

+0 1 0 0 1 1 1 1

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

1 0 1 0 0 1 1 0 0

第三步、對(duì)上面結(jié)果+1

1 0 1 0 0 1 1 0 0

+        1

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

1 0 1 0 0 1 1 0 1

第四步,減去100000000(256)

1 0 1 0 0 1 1 0 1

- 1 0 0 0 0 0 0 0 0

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

1 0 0 1 1 0 1

即等于77.

現(xiàn)在我們來(lái)算下176-253

二進(jìn)制表示為

1 0 1 1 0 0 0 0

- 1 1 1 1 1 1 0 1

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

? ? ? ? ? ? ? ?

第一步,用11111111減去減數(shù),得到對(duì)1的補(bǔ)數(shù)

1 1 1 1 1 1 1 1

- 1 1 1 1 1 1 0 1

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

0 0 0 0 0 0 1 0

第二步,將減數(shù)對(duì)1的補(bǔ)數(shù)與被減數(shù)相加:

1 0 1 1 0 0 0 0

+0 0 0 0 0 0 1 0

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

1 0 1 1 0 0 1 0

第三步、用11111111減去結(jié)果

1 1 1 1 1 1 1 1

- 1 0 1 1 0 0 1 0

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

0 1 0 0 1 1 0 1

結(jié)果是77,但是答案應(yīng)該是-77

現(xiàn)在我們可以來(lái)改造上面一章的加法器了,為了不過(guò)于復(fù)雜,我們先涉及減數(shù)小于被減數(shù)的操作。

上一章我們的加法器是這樣的:

我們得增設(shè)一個(gè)標(biāo)識(shí),來(lái)表明它是一個(gè)加法還是減法。我們的目的是做一個(gè)既能做加法,也能做減法的邏輯器。

首先我們得對(duì)B進(jìn)行取反,且僅當(dāng)減法的時(shí)候進(jìn)行取反,這樣就不會(huì)影響到加法,

我們首先想下異或門的工作方式:

XOR 0 1
0 0 1
1 1 0

改造圖如下:

取反就是我們的加法減法標(biāo)識(shí),我們定義標(biāo)識(shí)為0時(shí)是加法,1是減法。當(dāng)0加法的時(shí)候,輸入和輸出是不變的,如果是1減法的時(shí)候,那么正好是一個(gè)取反的狀態(tài)。

我們將8個(gè)異或門組成的器件,稱為求補(bǔ)器:

現(xiàn)在我們組合的連接如下:

SUB就是我們的加法減法的標(biāo)識(shí)位,0加法,1減法。在B輸入的時(shí)候,我們進(jìn)行減法求反,達(dá)到被11111111減去的效果,通過(guò)最右邊的SUB來(lái)達(dá)到對(duì)減法結(jié)果加1的效果,對(duì)加法沒(méi)影響。通過(guò)最左邊的異或門和sub來(lái)達(dá)到上溢(大于255)/下溢(負(fù)數(shù))的結(jié)果,SUB為0加法的時(shí)候,對(duì)輸出沒(méi)影響,CO為1代表大于255。當(dāng)減法的時(shí)候,SBU為1,CO輸出1,這個(gè)門邏輯組合就會(huì)得到0,達(dá)到減去100000000的效果,如果CO輸出0,代表了負(fù)數(shù)(如5-8=9+1-10+5-8=9-8+5+1-10=6-10,被減數(shù)只要小于減數(shù),最后推算的這個(gè)被減數(shù)6是無(wú)論如何十位是不可能得到1的)經(jīng)過(guò)這個(gè)門邏輯組合就會(huì)得到1,所以這個(gè)1就是下溢(負(fù)號(hào))的標(biāo)識(shí)。

現(xiàn)在我們的減法器是做好了,那么接下來(lái)我們討論下這個(gè)負(fù)數(shù)如何在我們的二進(jìn)制里面表示呢?

我們平常使用的系統(tǒng)都是在一定范圍內(nèi)的數(shù)字,所以我們不用求無(wú)限大的數(shù)值表示。

比如我們現(xiàn)在需要表示-500到499之間的數(shù)。我們都要用正數(shù)表示,因?yàn)槲覀兌M(jìn)制系統(tǒng)不支持-這個(gè)符號(hào)。我們就用三位數(shù)來(lái)表示這些數(shù)字。

500表示-500,501表示-499......999表示-1,000表示0,001表示1......499表示499

這樣我們就形成了一個(gè)循環(huán),好處是我們-1+1=0的情況用正數(shù)來(lái)表示999+1=1000,1由于是第四位,會(huì)被舍棄,就會(huì)得到結(jié)果0,

這種標(biāo)記的方法稱為10的補(bǔ)數(shù)。

如果你有一個(gè)余額為143塊的賬戶,你用了78元。-78對(duì)10的補(bǔ)數(shù)是999-078+1=65(忽略溢出)。如果我們用超額的用了150塊,-150對(duì)10的補(bǔ)數(shù)是850,就等于915,就是新賬戶的余額,在我們的表示中就是-85塊。

總結(jié)

以上是生活随笔為你收集整理的3、论二进制减法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。