ホーム 道しるべ 憩いの広場 濃緑空間 濃緑研の日記

固定小数点 除算
ホーム ] 上へ ] 概説 ] [ 固定小数点 除算 ] FixedPoint Tool ] Round2に挑戦 ]

 

符号付き除算1
符号付き除算2

除算もすこし判ってきました。
まずは、以下のコードを実行してみてください。
c=b/a
の実行です。(現在判っていることは、必ず b < a でなければならないということです)

main()
{
    int         a=0x60000000;    // e=4 f=0x0.110 0000        :               6.0
    int        b=0x40000000;     // e=4 f=0x0.100 0000        :               4.0
    int        c;    // 0xaaaaaaaa e=0 f=0x.1010 1010 1010 1010         :0.66666666666
    int        d;
    char    buf[80];

    d = 0;
    _asm {
        mov         eax,d
        mov         edx,b
        div        a
        mov         c,eax
        mov         d,edx
    }

sprintf(buf,"%8x %8x %8x %8x",a,b,c,d);
    MessageBox(GetDesktopWindow(), buf,"Test 3DNow!",MB_OK);
}

もう少し別の例を実行してみましょう。

    int         a=0x50000000;    // e=4 f=0x0.101 0000        :               5.0
    int        b=0x40000000;     // e=4 f=0x0.100 0000        :               4.0
    int        c;    // 0xcccccccc e=0 f=0x.1100 1100 1100 1100        :0.8

dを表示していますが、これが何を意味するかは、今はあまり気にしないで下さい。

また数値の符号はどう処理するのかといった課題もあります。