gpt4 book ai didi

ios - swift中的负数模

转载 作者:行者123 更新时间:2023-11-28 07:59:30 27 4
gpt4 key购买 nike

负数的模如何在 swift 中工作?当我做 (-1 % 3) 时,它给出 -1,但余数是 2。它有什么问题?

最佳答案

Swift 求余运算符 % 计算余数整数除法:

a % b = a - (a/b) * b

其中 / 是截断整数除法。在你的情况下

(-1) % 3 = (-1) - ((-1)/3) * 3 = (-1) - 0 * 3 = -1

所以余数总是与红利有相同的符号(除非余数为零)。

这与要求的定义相同,例如在C99标准中,例如看 Does either ANSI C or ISO C specify what -5 % 10 should be? .也可以看看 Wikipedia: Modulo operation概览这是如何用不同的编程语言处理的。

“真正的”模函数可以在 Swift 中这样定义:

func mod(_ a: Int, _ n: Int) -> Int {
precondition(n > 0, "modulus must be positive")
let r = a % n
return r >= 0 ? r : r + n
}

print(mod(-1, 3)) // 2

关于ios - swift中的负数模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47048757/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com