私は、lareValue1 と largeValue2 のすべての可能な値 (これらは少なくとも 1 です) を含む正の数を alwaysPositive に割り当てたいと考えています。
次のステートメントは、バッファ オーバーフローを引き起こします。
int alwaysPositive = (largeValue1 + largeValue2) / 2;
減算して追加することでそれを防ぐことができることを私は知っています:
int alwaysPositive = largeValue1 + ((largeValue2 - largeValue1) / 2);
しかし、他のプログラミング言語では、符号なしビットシフトを使用してトリックを実行できます。
int alwaysPositive3 = (largeValue1 + largeValue2) >>> 1;
C#でこれを行うにはどうすればよいですか?
以下の答えはすべて問題を解決します。これを行う方法はおそらくたくさんありますが、それらすべて (私の解決策を含む) には共通点が 1 つあります。