シフト命令で割り算の落とし穴
整数を2のべき乗で割り算したいとき、割り算の代わりに右算術シフトを使うことがあります。
特に割り算の処理コストが無視できないときにはよく右算術シフトを利用します。
が、今日1つ落とし穴があることに気付きました。
(-1) >> 1
が0になってくれません。
当然といえば当然ですね。0xFFFFFFFF はどれだけ右算術シフトしても 0xFFFFFFFF です。。。
見事にはまってしまいました。
整数を2のべき乗で割り算したいとき、割り算の代わりに右算術シフトを使うことがあります。
特に割り算の処理コストが無視できないときにはよく右算術シフトを利用します。
が、今日1つ落とし穴があることに気付きました。
(-1) >> 1
© Blogger template 'Isolation' by Ourblogtemplates.com 2008
Back to TOP
0 コメント:
コメントを投稿