如何使用 C# 查找数字是偶数还是奇数
本文关键字:数字 何使用 查找 | 更新日期: 2023-09-27 18:34:19
我知道已经有一种方法可以使用模数来查找数字是偶数还是奇数(查找数字是偶数还是奇数的最快方法是什么?但是,我想知道是否有像Math.Even或Math.Odd这样的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 位)。