From: Toyofuku Date: 1999-12-07T01:41:03+09:00 Subject: [ruby-dev:8558] Re: BIGDN 豊福です。 [ruby-dev:8551] えぐちさん >> > (x)<<(signed int)(y) だと、hpux では両方に SAR に相当する >> > コードを生成してしまう気がします。(手元にないので未検証) >> ((unsigned)-1)>>((signed)1) != ((unsigned)-1) ^^ == のつもりでした。 >> になりはしないかという話ですよね。一応 HP-UX10 では >> 大丈夫のようです。 > > これは、[ruby-dev:8550] の通り、大丈夫ぢゃないですね。 あれ? 紛らわしかったんですが、結局は大丈夫だと いうつもりで書いたんです。 改めて書くと long x = -1; unsigned long ux = -1; printf("%x\n", x>>((int)1)); /* ffffffff */ printf("%x\n", ux>>((int)1)); /* 7fffffff */ なので、 少なくとも HP-UX 10 では ((x)>>((int)(y))) でOK。 と、思ったんですが勘違いしてます? --- 豊福 toyofuku@juice.or.jp