1

どうすればビットごとに最も近いゼロに丸めることができるのだろうか? 以前は、ループを使用して長い除算を実行しました。ただし、数値は常に数値の 2 乗で割られるため、ビット シフトを使用することにします。したがって、次のような結果を得ることができます。

12/4=3
13/4=3
14/4=3
15/4=3
16/4=4

いつものように長い除算を実行することでこれを行うことができますか?

12>>2
13>>2

この種のビット シフトを使用する場合、動作はコンパイラごとに異なりますか? 丸めたらどうですか?Visual C++ 2010 コンパイラと gcc を使用しています。どうも

4

1 に答える 1