問題:Java與C#:BigInteger十六進制字符串會產生不同的結果嗎?
該代碼在Java中:
BigInteger mod = new BigInteger("86f71688cdd2612ca117d1f54bdae029", 16);
產生(在Java)的數量
179399505810976971998364784462504058921
然而,當我使用C#,
BigInteger mod = BigInteger.Parse("86f71688cdd2612ca117d1f54bdae029", System.Globalization.NumberStyles.HexNumber); // base 16
我不沒有相同的號碼,我得到:
-160882861109961491465009822969264152535
然而,當我直接從十進制創建的數量,它的工作原理
BigInteger mod = BigInteger.Parse("179399505810976971998364784462504058921");
我試圖轉換十六進制字符串字節數組和扭轉它,並創建一個從反向陣列的BigInteger,只是在情況下,它是一個字節數組不同字節,但沒有幫助...
轉換的Java代碼到C#的時候我也遇到了以下問題:
的Java
BigInteger k0 = new BigInteger(byte[]);
獲得在C#中相同的號碼,我必須扭轉,因爲在BigInteger的實現不同字節數組
C#相當於:
BigInteger k0 = new BigInteger(byte[].Reverse().ToArray());
嘗試在C#版本加入8前爲零。 – RealSkeptic
@RealSkeptic應該是一個答案;爲我工作[這裏](http://ideone.com/w3Ee5H)。 – bcsb1001