だから私はこれに短い手の声明があるかどうか興味があります:
_if(number < 0 )
bigInt.sign = 0;
else
bigInt.sign = 1;
_
If a <bなどについて、これらすべての略式文を見ることができます。
私はそれを適切に行う方法がわからないので、これに関する何らかの入力をお願いします。
ありがとう!
私は実際にあなたたちが答える直前にそれを理解しました。
私はbigInt.sign = (number < 0) ? 1 : 0
を使用しています
はい:
bigInt.sign = !(number < 0);
!
演算子は常にtrue
またはfalse
に評価されます。 int
に変換すると、これらは1
および0
それぞれ。
もちろん、これは次と同等です:
bigInt.sign = (number >= 0);
ここでは括弧は冗長ですが、わかりやすくするために括弧を追加します。すべての比較演算子および関係演算子は、true
またはfalse
に評価されます。
三項演算子を使用するための基本的な構文は次のとおりです。
(condition) ? (if_true) : (if_false)
あなたの場合、これは次のようなものです:
number < 0 ? bigInt.sign = 0 : bigInt.sign = 1;
これを試して:
bigInt.sign = number < 0 ? 0 : 1
コードでこれを使用する頻度に応じて、次のことを検討できます。
マクロ
#define SIGN(x) ( (x) >= 0 )
インライン関数
inline int sign(int x)
{
return x >= 0;
}
その後、あなたはただ行くだろう:
bigInt.sign = sign(number);