From: EGUCHI Osamu Date: 1999-12-04T22:59:21+09:00 Subject: [ruby-dev:8527] Re: BIGDN えぐち@エスアンドイー です。 >>> In message [ruby-dev:8525] Re: BIGDN On Sat, 4 Dec 1999 05:01:18 +0900, Toyofuku said: 豊福> 豊福です。 豊福> 豊福> | #define RSHIFT(x,y) (((x)<0) ? ~((~(x))>>y) : (x)>>y) 豊福> 豊福> #define RSHIFT(x,y) ((x)>>((signed int)(y))) 豊福> 豊福> ではどうでしょう。 signed が有効でない処理系もあるので、単に #define RSHIFT(x,y) ((x)>>((int)(y))) が妥当かも知れません。 それから、 hpux-10.x は y の符号の有無で MSB を複製の挙動が変化しますが、 x の符号の有無や x の MSB が1の時の挙動はansi では実装依存なので、 x を正に正規化しシフトする元のバージョンの実装は的確だと思います。 えぐち