将字符串转换为BigInteger

14

我有以下代码,它创建了一个非常大的数字 (BigInteger),然后将其转换为一个 string

// It's a console application.
BigInteger bi = 2;
for (int i = 0; i < 1234; i++)
{
   bi *= 2;
}
string myBigIntegerNumber = bi.ToString();
Console.WriteLine(myBigIntegerNumber);

我知道如果要将类型转换为int,可以使用Convert.ToInt32,将类型转换为long,则可使用Convert.ToInt64,但是要将其转换为BigInteger怎么办呢?

我该如何将表示非常长的数字的string转换为BigInteger

2个回答

22

使用BigInteger.Parse()方法。

将指定风格的数字字符串表示形式转换为其 BigInteger 等效项。

BigInteger bi = 2;
for(int i = 0; i < 1234; i++)
{
    bi *= 2;
}

var myBigIntegerNumber = bi.ToString();
Console.WriteLine(BigInteger.Parse(myBigIntegerNumber));

您还可以检查BigInteger.TryParse()方法,以确定您的转换是否成功。

尝试将数字的字符串表示形式转换为其BigInteger等效项,并返回一个指示转换是否成功的值。


0

这是另一种比BigInteger.Parse()更快的方法。

public static BigInteger ToBigInteger(string value)
{
    BigInteger result = 0;
    for (int i = 0; i < value.Length; i++)
    {
        result = result * 10 + (value[i] - '0');
    }
    return result;
}

有一些小问题,比如它不能处理负数。 - Michael Kay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接