乘法比較簡(jiǎn)單,。
最簡(jiǎn)單的方法就是模擬筆算乘法的過(guò)程: 1101 A * 1011 B --------- 1101 1101 0000 1101 --------- 10001111 具體過(guò)程:1、累加器清零,;2,、由乘數(shù)B的末位確定是否把A加到累加器中;3,、A左移1位,、B右移1位;4,、重復(fù)1,。 改進(jìn)一下:乘數(shù)B右移的時(shí)候空出的高位,可以利用來(lái)存放結(jié)果的低位,,即移位的時(shí)候,,A不需要移動(dòng),而是把累加結(jié)果右移1位,,移出的部分進(jìn)入乘數(shù)B的空位中,,這樣最終結(jié)果的高位放在累加器中,低位放在B中,。這樣做的好處是,,A、B,、累加器的位數(shù)一樣,,容易在計(jì)算機(jī)體系中運(yùn)算。 除法一般不好優(yōu)化,,直接按照筆算步驟來(lái)算就可以了:
1,、根據(jù)被除數(shù)(余數(shù))和除數(shù)的大小來(lái)上商; 2,、被除數(shù)(余數(shù))低位補(bǔ)0,,再減去右移后的除數(shù),也可以改為左移余數(shù),,減去除數(shù),,這樣可以確保參與運(yùn)算的寄存器具有相同的位數(shù); 3,、商寫到寄存器的最低位,,然后商左移1位,。 |
|
來(lái)自: 林池雨露 > 《我的圖書(shū)館》