问题: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