欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > C# >内容正文

C#

c# java gt;gt;gt;,相同的字节数组=gt; Java和C#中的不同BigInteger值

发布时间:2025/3/21 C# 40 豆豆
生活随笔 收集整理的这篇文章主要介绍了 c# java gt;gt;gt;,相同的字节数组=gt; Java和C#中的不同BigInteger值 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

byte[] byteArray = {

52, 51, 102, 100, 55, 48, 48, 48, 57, 97, 57, 55, 97, 55, 100, 51, 49, 49, 99, 53, 54, 52, 52,

48, 52, 55, 99, 99, 99, 55, 48, 48, 102, 56, 100, 48, 56, 97, 57, 100

};

BigInteger byteArrayAsBigInt = new BigInteger(byteArray);

正如您所看到的,两个阵列都是相同的.但是为什么Java中的BigInteger构造函数返回的值不同于C#中的值?

byteArrayAsBigInt的Java值:

435547623972009042387221878687981899647773248766318257271173050301525056529400623692496442046820

byteArrayAsBigInt的C#值:

836240090191738952707023426454050812020217962491637996803829702297801636146665723913243623568180

任何人都有任何想法?

解决方法:

答案是在Java Big Endian中假设顺序,但在C#中使用Little Endian.

从Java文档:

public BigInteger(byte[] val) Translates a byte array containing the

two’s-complement binary representation of a BigInteger into a

BigInteger. The input array is assumed to be in big-endian byte-order:

the most significant byte is in the zeroth element.

来自C#文档:

BigInteger Constructor (Byte[])

Type: System.Byte[]

An array of byte values in little-endian order.

标签:c,java

来源: https://codeday.me/bug/20190708/1402419.html

总结

以上是生活随笔为你收集整理的c# java gt;gt;gt;,相同的字节数组=gt; Java和C#中的不同BigInteger值的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。