2

入力数値が -1 かどうかをチェックする関数を作成する必要があります。ここに要件があります

isTmin - returns 1 if x is the minimum, two's complement number, and 0 otherwise 
Legal ops: ! ~ & ^ | +
Max ops: 10
Rating: 1

最初にこれを試します:

int isTmin(int x) {
  return !(x^(0x01<<31));
}

この方法は機能しますが、シフト演算子の使用は許可されていません。シフト演算子を使用せずにこの問題を解決するにはどうすればよいですか?

4

2 に答える 2

0

チェックする必要があるのは、それが 0xffff ffff であるかどうかだけである場合は、次のようになります。

return x^0xffffffff == 0

これは、x も である場合にのみ当てはまります0xffffffff

于 2013-04-12T03:52:02.233 に答える