在Swift中,为什么按位不需要加一来得到一个正整数对应的负整数?

In Swift, why does a bitwise NOT require adding one to get a positive integer's corresponding negative integer?

例如,

func challenge26c(subtract: Int, from: Int) -> Int {
    return from + (~subtract + 1)
}

是否同样适用于其他编程环境?

这是由于整数在 Swift 中的存储方式(在我能想到的几乎所有情况下),在所谓的 two's complement notation 中。如果你想要一个“正整数对应的负整数”(数学上称为 加法逆),你可以简单地使用一元负号 - (例如,如果 x为5,则-x变为-5。

不过,在我看来,不使用 - 来实现减法是一项挑战,因此您可能需要阅读补码符号。