如何使用 C# 查找数字是偶数还是奇数

本文关键字:数字 何使用 查找 | 更新日期: 2023-09-27 18:34:19

我知道已经有一种方法可以使用模数来查找数字是偶数还是奇数(查找数字是偶数还是奇数的最快方法是什么?但是,我想知道是否有像Math.Even或Math.Odd这样的C#函数。 使用模数来做到这一点的唯一方法吗?

如何使用 C# 查找数字是偶数还是奇数

它可能算作作弊,但如果你使用 BigInteger,它有一个 IsEven 方法。

如 MSDN 中所述,调用此方法等效于:

value % 2 == 0;

参考:

  • BigInteger.Iseven 属性

实际上,还有更多有趣的点,其他一些检查方法是偶数。当你使用 % 时,你应该像其他人提到的那样用 0 检查你的值,因为与 1 比较会给出所有负整数的错误答案。

bool is_odd(int n) {
    return n % 2 == 1; // This method is incorrect for negative numbers
}
bool is_odd(int n) {
    return n % 2 != 0;
}

下面演示了第二种流行的方式。

bool is_odd(int n) {
    return x & 1 != 0;
}

此方法利用了低位将始终设置在奇数上的事实。

许多人倾向于认为检查数字的第一位更快,但至少对于 C# 来说并非如此。速度几乎相同,通常模量工作得更快。

在这篇文章中,作者尝试了所有流行的方法来检查数字是否偶数,我建议您查看文章底部演示的表格。

.NET 中没有只为你调用%2==0的方法。 这么简单的方法可能不值得他们花时间为您实现,因为替代方案实际上是五个字符

当然,如果您确实愿意,可以编写自己的命名方法来执行此计算。

使用 (myVal % 2) == 0 很好,但按位运算符也很快:

(myVal & 0x1) == 0

适用于正值和负值以及不同类型的(例如 16 位或 64 位)。