[H8-ML(774)] Re:浮動小数点数の除算
From: webmaster@xxxxxxxxxxxx (Yuji Tateno)
Date: 2000年08月23日(水)00時33分06秒
どもども〜。たろすけです。

最後に桁をあわせると言うのはそれとは違う意味だったのですが、その部分に関しては
基本的にそれで大丈夫です。

ただ、下駄は仮数部のビット数 - 1ビット必要ですから、仮数部が24ビットだと
47ビット / 24ビットの除算をしなければならないでしょう。
もし下駄が8ビットであれば有効桁数は(たぶん)9ビットになります。

(何にしても除算命令は使えないだろうけど)除算命令を使わないのであれば、
        商(一番上がMSB)    余
1110 / 1001 = 1、1110 - (1001 * 1) = 0101 あまりをシフトアップして、
1010 / 1001 = 1、1010 - (1001 * 1) = 0001 あまりをシフトアップして、
0010 / 1001 = 0、0010 - (1001 * 0) = 0010 あまりをシフトアップして、
0100 / 1001 = 0、0100 - (1001 * 0) = 0100 必要なビット数を計算したからおしまい。
みたいにすることで多ビット演算をせずに仮数部を計算できます。

さらに、仮数部の最上位ビットの1を省略したまま計算すれば、あまりをシフトアップ
する時にあまりから1が溢れてこなければ自動的に次の桁の商を0とすることで、その間の
比較と減算を省略できます。

こんな感じでよろしいでしょうか?

>すいません、もう一度質問させてください。
>最後に桁を合わせるということは理解できるのですが、
>仮数部を割り算するときは1か0しかならないのでその前に被除数に下駄を履かせるの
>でしょうか?
>たとえば(簡単のため仮数部が4ビットだとして)
>	B'1010÷B'1001=1
>にしかならないので
>	B'1010000÷B'1001=10001
>という感じで行なうのでしょうか?
>以上のような考えで
>仮数部の24ビットを被除数はB'(仮数部)00000000、除数をB'00000000(仮数部)とい
>う形で32ビットとして
>割り算をするのかなと考えたのですが、違いますでしょうか?

---------------------------------------
webmaster@xxxxxxxxxxxx:舘野雄治
http://www.tarosuke.net/:たろすけの部屋
---------------------------------------
スレッド概略
[表示中](起点)
 └[775(1)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]