1

我正在写我的密码学领域的工作,今天我试图从字符串中获取一个 BigInteger 数字。但我发现从字符串中获取 BigInteger 数字的唯一方法是

UTF8Encoding Encoding = new UTF8Encoding();
var bytes = Encoding.GetBytes(myString);
var myBigInteger = new BigInteger(bytes);

但这不是我需要的那种方式。我需要一些能够准确返回字符串的 BigInteger 表示形式的东西。例如,如果我有

var myString = "1234567890";

我希望我的 BigInteger 是

BigInteger bi = 1234567890;
4

3 回答 3

6

您可以使用该类型的 Parse 方法。

BigInteger.Parse(字符串值)

它是静态的。您传递一个字符串并获取相应的值。

例如:

BigInteger reallyBigNumber = BigInteger.Parse("12347534159895123");
于 2013-06-11T20:56:24.727 回答
1

我认为 TryParse 是您想要的方式:

BigInteger number1;
bool succeeded1 = BigInteger.TryParse("-12347534159895123", out number1);

如果您传递无效值,这不会引发异常。如果输入字符串不转换,它只会将数字设置为 0。我相信它也比 Parse 快。

http://msdn.microsoft.com/en-us/library/dd268301.aspx

于 2013-06-11T20:58:10.867 回答
0
BigInteger bi = BigInteger.Parse("1234567890");
于 2013-06-11T20:57:33.010 回答