x + y がオーバーフローするかどうかをチェックするビット演算を使用して、C でメソッドを作成する必要があります。次の操作は最大 20 個しか使用できません。! 〜&^ | + << >> 負の数と正の数の両方をテストする必要があることに注意してください。
私はそれを機能させるために何度か試みました。私の論理は健全ですか?つまり、(x + y) が x より小さい場合、オーバーフローしています。その論理に基づいて、私はこれを書きました。
int addOK(int x, int y)
{
int sum = x + y;
int nx = ((~x) + 1);
int check = (sum + nx)>>31;
return !check;
}
ありがとうございました!