gpt4 book ai didi

c# - 是否有用于 C# 的良好、高性能的 unsigned BigInteger 类型?

转载 作者:行者123 更新时间:2023-11-30 12:51:49 26 4
gpt4 key购买 nike

我熟悉 System.Numerics.BigInteger 类,但在我的应用程序中,我只处理正整数。负整数是一种错误情况,如果有 BigInteger 类型的无符号等价物就好了,这样我就可以删除所有这些检查。有吗?

最佳答案

框架里面什么都没有,没有。我会尝试将检查集中在尽可能小的公共(public) API 中,然后在其余时间将数据视为有效 - 就像您对 null 检查之类的事情一样。当然,如果您执行任何可能产生负值的操作(例如,从另一个中减去一个),您仍然需要小心。

您可以通过创建扩展方法来使代码稍微整洁一些,例如

public static void ThrowIfNegative(this BigInteger value, string name)
{
if (value.Sign < 0)
{
throw new ArgumentOutOfRangeException(name);
}
}

...并像这样使用它:

input.ThrowIfNegative("input");

您可能会创建自己的 UBigInteger 结构,其中包含一个 BigInteger,并通过使用 BigInteger 实现和检查在不同值之间执行操作,但我怀疑这将是相当多的工作,但 yield 相对较小,如果您将它用于大量计算,可能会对性能产生影响。

关于c# - 是否有用于 C# 的良好、高性能的 unsigned BigInteger 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5945628/

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