2014-02-12 27 views
0

我有c#中的問題,將字符串轉換爲字節數組的十進制數。我想創建使用字節數組的BigInteger。十進制數字到字節數組[c#]

我嘗試:

string Astr = "123456789123456789123456789123456789123456789123456789123456789123456789123456789"; 
byte[] AByte = Astr.Select(c => (byte)(c - '0')).ToArray(); //This is problem because array padding wrong. 

Tnaks爲你的想法。 :)

+0

所以一個*想法*:一個十進制數字**不佔用一個完整字節。 –

+0

我不明白你的問題,但'BigInteger'結構有一個[字節數組構造函數](http://msdn.microsoft.com/en-us/library/dd268207%28v=vs.110%29.aspx) 。你試過了嗎? _注:它不符合CLS。 –

+0

c#中的BigInteger很小 - 我需要使用cca 2048位數。 – user3299032

回答

1

爲什麼你需要從字節數組創建BigInteger時,你有字符串可用?

爲什麼不只是這樣做呢?

string aStr = "123456789123456789123456789123456789123456789123456789123456789123456789123456789"; 
BigInteger x = BigInteger.Parse(aStr); 

另請注意,字符串形式的BigInteger與其字節數組之間沒有簡單的對應關係。

例如,從代碼下面就以上,如果添加此:

var ba = x.ToByteArray(); 
Console.WriteLine(string.Join(" ", ba.Select(v => v.ToString("x")))); 

的輸出是:

15 5f 4 84 b6 70 28 c7 73 7b a3 d5 f9 b a1 8 67 12 b0 a5 af 52 ba cb e4 66 6c 75 78 66 92 31 2a 4 

這是原始字符串的字節[]版本之後被編碼爲BigInteger。

+0

BigInteger in c#對我來說很小:( - 我需要用cca 2048位數字工作 – user3299032

+1

@ user3299032但是C#整數與2048位數字(以及更多)一起工作,那麼你的實際問題是什麼? –

相關問題