計算機內原碼乘法、除法的實現

前言

此文章主要是介紹具體的例子計算方法,希望對你有幫助

一、原碼乘法

X=0.1101,Y=0.1011,求XY
[X]原=01101
[Y]原=01011
[X]原
[Y]原=10001111

被乘數爲[X]原,開始的高位部分積都爲0,低位部分積爲乘數的原碼。
兩個乘數最大的小數位爲4,需要在運算中加四次(或右移四次),最後一次加完的值還需要再右移一次纔是結果。

在這裏插入圖片描述

二、原碼除法

[1]. 恢復餘數法

X= -0.1011,Y= -0.1101,求[X/Y]原
[X]原=1.1011
[Y]原=1.1101
X*=0.1011
[Y*]補=Y*=0.1101
-Y*=1.1101,[-Y*]反=1.0010 ,[-Y*]補=[-Y*]反+1=1.0011

Y即對Y求絕對值,因爲Y的值爲正數,所以Y*=[Y*]反=[Y*]補
在求[-Y*]補時,直接對[Y*]補每一位取反末位加1即可。
在求[-Y*]反時,直接將小數部分取反即可。
被除數爲X*,除數爲Y*
當商的當前位數和商的初始位數相同時,可結束運算。

在這裏插入圖片描述

[2]. 不恢復餘數法(加減交替法)

X= -0.1011,Y= -0.1101,求[X/Y]原
[X*]補=X*=0.1011
[Y*]補=Y*=0.1101
-Y*=1.1101,[-Y*]反=1.0010,[-Y*]補=[-Y*]反+1=1.0011

Y即對Y求絕對值,因爲Y的值爲正數,所以Y*=[Y*]反=[Y*]補
在求[-Y*]補時,直接對[Y*]補每一位取反末位加1即可。
在求[-Y*]反時,直接將小數部分取反即可。
被除數爲X*,除數爲Y*
當商的當前位數和商的初始位數相同時,可結束運算。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章