我的世界十進(jìn)制三位數(shù)比較器原理分析
我的世界中比較器是一個(gè)比較有意思也比較有難度的東西,那么今天小編給大家?guī)?lái)的是MCBBS的ufof帶來(lái)的十進(jìn)制三位數(shù)比較器原理的分析,希望大家喜歡。
比較器一共有四個(gè)部分:
一、輸入部分
二、數(shù)字顯示屏
三、數(shù)字比較器
四、比較顯示屏
先上一張圖:
現(xiàn)在應(yīng)該明白了吧?我們重點(diǎn)分析第三個(gè)部分:比較部分。
我們平常在生活中比較數(shù)字的時(shí)候,邏輯是這樣的:
兩個(gè)數(shù)字:A和B
先比較A的百位數(shù)和B的百位數(shù):
如果A的百位數(shù)>B的百位數(shù),那么A>B
如果A的百位數(shù)<B的百位數(shù),那么A<B
如果A的百位數(shù)=B的百位數(shù),那么往下比較十位數(shù)
如果A的十位數(shù)>B的十位數(shù),那么A>B
如果A的十位數(shù)<B的十位數(shù),那么A<B
如果A的十位數(shù)=B的十位數(shù),那么往下比較個(gè)位數(shù)
以此類(lèi)推。最后連個(gè)位數(shù)都一樣的話那就說(shuō)明A=B。
這是我們生活中的邏輯。不過(guò)在我的比較器中稍稍有一些改變(雖說(shuō)基本邏輯是一樣的):
就是說(shuō),A和B每一個(gè)位數(shù)都要進(jìn)行比較。
如果A的百位數(shù)和B的百位數(shù)比較結(jié)果不為=,那么結(jié)果是什么就輸出什么,而且十位數(shù)和個(gè)位數(shù)的結(jié)果作廢。
如果A的百位數(shù)和B的百位數(shù)比較結(jié)果為=,那么就要看十位數(shù)的了。
如果A的十位數(shù)和B的十位數(shù)比較結(jié)果不為=,那么結(jié)果是什么就輸出什么,而且個(gè)位數(shù)的結(jié)果作廢。
如果A的十位數(shù)和B的十位數(shù)比較結(jié)果為=,那么就要看個(gè)位數(shù)的了。
最后比較A的個(gè)位數(shù)和B的個(gè)位數(shù),是多少輸出多少。
聽(tīng)到這里一定一頭霧水吧?為什么要“作廢”?原因是這樣的:
比如說(shuō)我要比較這兩個(gè)數(shù)字:
432 342
A的百位數(shù)是4,B的百位數(shù)是3
A的十位數(shù)是3,B的十位數(shù)是4
A的個(gè)位數(shù)是2,B的個(gè)位數(shù)是2
A的百位數(shù)>A的百位數(shù)
A的十位數(shù)<B的十位數(shù)
A的個(gè)位數(shù)=B的個(gè)位數(shù)
如果沒(méi)有“作廢”動(dòng)作,你就會(huì)發(fā)現(xiàn):臥槽。 大于、小于、等于都亮了!
所以說(shuō)就得要有“作廢”的機(jī)制。不然會(huì)出現(xiàn)混亂。
具體的邏輯我已經(jīng)講完了,現(xiàn)在再來(lái)講講如何應(yīng)用到MC當(dāng)中去。
關(guān)于比較:
先上整體圖:
比較單位數(shù)是這樣的:
比如說(shuō)A的百位數(shù)為x,B的百位數(shù)為y
那么我們需要:
x-y
y-x
如果x-y>0,那么x>y
如果y-x>0,那么y>x
如果都為0,那么x=y
上圖就是一位數(shù)的比較。
那“作廢”是如何達(dá)到的呢?
這是一個(gè)十位數(shù)的輸出;钊砂傥粩(shù)的輸出控制。如果活塞推動(dòng),那么十位數(shù)的輸出會(huì)被強(qiáng)行阻斷。這就是“作廢”原理。
再來(lái)說(shuō)說(shuō)最終輸出:
這個(gè)是大于和小于。但是你現(xiàn)在肯定會(huì)問(wèn):等于呢??
等于在后面:
如果兩個(gè)數(shù)字既不大于也不小于,那就肯定是等于。所以我把兩個(gè)信號(hào)的或門(mén)去了一個(gè)非門(mén),這樣就可以達(dá)到:兩個(gè)都為關(guān)的時(shí)候輸出為開(kāi)。
查看所有0條評(píng)論>>