1. ホーム
  2. c++

[解決済み] 整数を2で割る場合、どちらがよいでしょうか?

2022-03-22 23:14:09

質問

整数を2で割る方法として、次のうちどれが最も適しているか、またその理由は?

技法1:

x = x >> 1;

技術2:

x = x / 2;

ここで x は整数です。

どのように解決するのですか?

あなたが行おうとしていることを最もよく表している操作を使用してください。

  • 数値をビット列として扱う場合は、bitshiftを使用します。
  • 数値として扱う場合は、除算を使用します。

両者は厳密に等価ではないことに注意してください。負の整数に対して異なる結果を与えることがあります.例えば

-5 / 2  = -2
-5 >> 1 = -3

(イデオン)