1

我正在阅读 C++ 中的正无穷和负无穷,我正在尝试在定点数学算法实现中实现它们

我可以看到 int 的最大值将等于std::numeric_limits<int>::max(); c++

int 的最小值std::numeric_limits<int>::min(); 在 C++中将等于

在这里,当我在定点数学实现中手动定义 int max 和 int min 时,我的疑问是 int min = -int max;int min = -int max -1;

有人可以清除吗?

4

1 回答 1

0

这取决于您的符号表示,但我会假设它是二进制补码。

在这种情况下,我们对每个有符号整数 x都有-x = ~x + 1这个。x + (~x) = -1

所以int min = (~max) + -1 = - ( (unsigned int) max) + -1

于 2013-05-14T09:01:24.763 回答