gpt4 book ai didi

c# - C#.NET 中的大数字

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:38:14 26 4
gpt4 key购买 nike

我必须创建一个方法来验证数字是否遵循特定结构,并且它必须遵循用 PHP 实现的现有模式,但我在 C#.NET 中做事时遇到了一些麻烦。当数字太长时我得到一个 System.OverflowException,我正在使用 ulong,看看:

    /// <summary>
/// Gera um dígito verificador para um código
/// </summary>
/// <param name="code">Código</param>
/// <returns>Digito verificador</returns>
public static ulong GenerateTrustID(UInt64 code)
{
UInt64 intcode = 1;
UInt64 endcode = 0;

foreach (UInt64 number in code.ToString().ToCharArray().Select(Convert.ToInt64).ToArray())
{
UInt64 newcode = (number * code * intcode);

char[] chrcode = newcode.ToString().ToCharArray();
Array.Reverse(chrcode);
intcode = UInt64.Parse((new string(chrcode)));
}

if (intcode.ToString().Length < 2)
{
intcode = 04051995;
intcode = intcode * 88;
}

endcode = UInt64.Parse(intcode.ToString().GetLast(2));

return endcode;
}

我必须重现下面的代码:

/**
* @brief Gera uma ID de verificação para um código em um esquema privado.
* @param int $code Código para o qual será gerado o ID de verificação
* @return int
*/
public function generateTrustID($code){
$intcode = 1;
$endcode = null;
$numbers = array_map('intval', str_split($code));

foreach($numbers as $number){
$intcode = (int)strrev($number * $code * $intcode);
}

if(strlen($intcode) < 2){
$intcode = 04051995;
$intcode = $intcode * 88;
}

$endcode = substr($intcode, 0, 2);

return $endcode;
}

最佳答案

对于非常大的数字,您可以使用 BigInteger Class .

您还可以阅读此 article有关如何使用它的更多信息。

关于c# - C#.NET 中的大数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30789459/

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