どもども〜。たろすけです。 最後に桁をあわせると言うのはそれとは違う意味だったのですが、その部分に関しては 基本的にそれで大丈夫です。 ただ、下駄は仮数部のビット数 - 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/:たろすけの部屋 ---------------------------------------