なかだです。

At Sun, 2 Jul 2000 10:23:46 +0900,
Katsuyuki Komatsu <komatsu / sarion.co.jp> wrote:
> > +    if (i >= sizeof(VALUE)*CHAR_BIT)
> > +	return INT2FIX(0);
> 
> FIX2LONG(x)が負の場合も考えないと。
> (-1) >> 32が0になっちゃいますよ。

  ごもっとも。こうするのが一番手っ取り早いかな。


--- numeric.c~ Mon Jun 12 23:42:34 2000 +++ numeric.c Sun Jul 2 13:10:48 2000 @@ -1242,4 +1242,6 @@ fix_rshift(x, y) if (i < 0) return fix_lshift(x, INT2FIX(-i)); + if (i >= sizeof(VALUE)*CHAR_BIT) + return FIX2LONG(x) < 0 ? INT2FIX(-1) : INT2FIX(0); val = RSHIFT(FIX2LONG(x), i); return INT2FIX(val);
-- そうだ 強気に ちょっと インチキに☆彡 中田 "Bugるくらいがちょうどいいかも;-)" 伸悦