最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

如何在mc里打造一個計算器[5] -- 除法器

2020-04-03 15:40 作者:nyasyamorina  | 我要投稿


如果還沒看過乘法器的, 推薦去看一下乘法器以便回想一下小學(xué)學(xué)了什么

回想起小學(xué)算特別長的除法時, 會把除數(shù)乘1~9的結(jié)果寫在一盤, 再逐條與當前算到的數(shù)字比較, 然后.....嘛, 大家記得除法怎么算就行了

簡單看一下, 可以看到除法其實就是在重復(fù) "比較, 減法, 取出被除數(shù)下一位" 這個操作, 那么就像其他部件一樣可以做一個實現(xiàn)單一操作的部件, 拼在一起就是得到除法器了

我們先來看看每一步操作的輸入和輸出需要什么

首先輸出必定要有商的其中一位, 由于二進制只有0和1, 所以商的其中一位就是1bit, 其次就是輸出做完減法后剩下的數(shù)字, 這串數(shù)字將會輸入進下一個部件, 那么部件的輸入就有上一個部件做完減法的數(shù)字, 并且還需要從被除數(shù)里拿出下一位, 由于二進制只有01, 那么需要比較的數(shù)字也只有 0*除數(shù),1*除數(shù), 那么輸入也應(yīng)當含有除數(shù)*.

弄清楚每一個步驟的輸入輸出后, 接下來看看里面數(shù)據(jù)如何流動

以下稱從上一個部件輸出的數(shù)字為A, 而從被除數(shù)拿出來的叫a, 除數(shù)*為B, 商輸出的一位為c, 減法后的余數(shù)為C

首先A左移一位為a騰出位置, 得到的新數(shù)字 A_ = A<<1 + a,? ?然后跟著A_與除數(shù)比較, 如果A_比除數(shù)大, 則商輸出c=1, 余數(shù)C = A_ - 除數(shù)*, 其中A_-除數(shù)可以寫為A_+(-除數(shù)),?

*由于除數(shù)總是與減法一起計算, 所以在除法開始前需要預(yù)先計算(0-除數(shù)), 得到的數(shù)字再作為后續(xù)操作的輸入

如果不熟悉正數(shù)與負數(shù)的轉(zhuǎn)換, 可以去參考之前的加減法器

由加法器的原理簡單可知 (溢出整形, 還記得嗎),? (A_永遠小于2*除數(shù), 這部分自己思考一下吧)當計算A_+(-除數(shù))的時候, 如果A_>=除數(shù)時,?溢出位為1, 否則為0,? 而這個就可以作為我們判斷的標準

稍微整理一下思路就得到了實現(xiàn)除法里一步的部件

就像小學(xué)除法一樣, 拿被除數(shù)也是從高位開始拿, 輸出商也是從高位開始輸出, 當被除數(shù)(int)用完后, 剩下的C輸出就是除法的余數(shù)

就如同大部分部件一樣, 除法器可以把重復(fù)出現(xiàn)的部分"折疊"起來, 使得體積更小, 但運行速度減慢


一般計算器里的部件原理都不太復(fù)雜, 靜下心來稍微想想就會懂的了

但是下一篇的BIN轉(zhuǎn)BCD就可能不是了

如何在mc里打造一個計算器[5] -- 除法器的評論 (共 條)

分享到微博請遵守國家法律
湟中县| 柘荣县| 温宿县| 焦作市| 澎湖县| 丹棱县| 昔阳县| 东海县| 吴旗县| 平舆县| 阜新| 泽普县| 云和县| 阿城市| 镇坪县| 阳西县| 达孜县| 九台市| 安塞县| 海城市| 车险| 息烽县| 松江区| 惠来县| 尉犁县| 荃湾区| 苍南县| 左权县| 萨嘎县| 垫江县| 泗洪县| 北宁市| 监利县| 宝兴县| 桓台县| 阿拉善左旗| 广宗县| 鹰潭市| 平山县| 新民市| 博罗县|