2013-06-11 78 views
1

我正在寫加密法的裁判工作,今天我試圖從字符串中得到一個BigInteger數字。但我發現從字符串中獲取BigInteger數字的唯一方法是如何將字符串解析爲BigInteger?

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

但這不是我需要的。我需要一些能夠返回字符串的BigInteger表示形式的東西。舉例來說,如果我有

var myString = "1234567890"; 

我希望我的BigInteger是

BigInteger bi = 1234567890; 
+0

我已經改變了標題,以配合您的問題(是:,這看起來與崗位完全相反的「如何從'BigInteger'得到字符串」)... –

回答

6

你可以使用這種類型的解析方法。

BigInteger.Parse(string value)

它是靜態的。你傳遞一個字符串並獲得相應的值。

例如:

BigInteger reallyBigNumber = BigInteger.Parse("12347534159895123"); 
+0

謝謝!我忘了這個=) – Art713

0
BigInteger bi = BigInteger.Parse("1234567890"); 
1

我想的TryParse是你想要去的方式:如果你傳遞一個無效值

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

這不會拋出異常。如果輸入的字符串不能轉換,它只會將數字設置爲0。我相信它比Parse更快。

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

+0

謝謝你,安倍! – Art713

+0

它不會更快,因爲它在內部使用'Parse'。它基本上使用try-catch塊,在'try'塊中返回'true'並在'catch'中返回'false'。 – Renan

+0

@Abe你爲什麼認爲TryParse比Parse方法更快? – Art713