整数値0
と-0
は基本的に同じであることを知っています。しかし、それらを区別することは可能かどうか疑問に思っています。
たとえば、変数が割り当てられた-0
かどうかはどうすればわかりますか?
bool IsNegative(int num)
{
// How ?
}
int num = -0;
int additinon = 5;
num += (IsNegative(num)) ? -addition : addition;
-0
メモリに保存された値はとまったく同じ方法0
ですか?
int
2の補数で表される実装(最も一般的に遭遇するもの)で0
あり-0
、同一のビットごとの表現を持ちます。
int
。Onesの補数エンコーディングを参照してください。