Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#sbyte数组到BigInteger_C#_Type Conversion_Byte_Biginteger - Fatal编程技术网

C#sbyte数组到BigInteger

C#sbyte数组到BigInteger,c#,type-conversion,byte,biginteger,C#,Type Conversion,Byte,Biginteger,我必须将sbyte数组转换为BigInteger。我在通用windows平台上。BigInteger构造函数只接受byte[],不接受sbyte[]。 我不能使用byte[],因为在C#中,byte在默认情况下是无符号的,并且我得到的值大于128 sbyte数组是从字节数组转换而来的,因为当我比较C#返回的BigInteger值时,它与Java中的值不同,因为Java默认使用有符号字节,而C#使用无符号字节 有解决办法吗? java中的BigInteger:7821410193812363335

我必须将sbyte数组转换为BigInteger。我在通用windows平台上。BigInteger构造函数只接受byte[],不接受sbyte[]。 我不能使用byte[],因为在C#中,byte在默认情况下是无符号的,并且我得到的值大于128

sbyte数组是从字节数组转换而来的,因为当我比较C#返回的BigInteger值时,它与Java中的值不同,因为Java默认使用有符号字节,而C#使用无符号字节

有解决办法吗? java中的BigInteger:78214101938123633359912717791532276502 C#30381787179362266836169791328776673082中的大整数


编辑:我正在尝试从sbyte[]数组生成一个BigInteger。我没有尝试将byte[]转换为sbyte[]

翻转您的字节数组。不要将其转换为
sbyte[]
。使用
字节[]

以下是作为数组的值(有符号和无符号):

Java值(有符号):
58、-41、124、-12、24、102、14、93、79、-102、72、47、-62、81、-37、22
Java值(无符号):
58、215、124、244、24、102、14、93、79、154、72、47、194、81、219、22

C值(有符号):
22、-37、81、-62、47、72、-102、79、93、14、102、24、-12、124、-41、58

C#值(无符号):
22、219、81、194、47、72、154、79、93、14、102、24、244、124、215、58


看一看。如前所述,Java使用
大端数
,C#使用
小端数
。因此,翻转您的
字节[]
,并停止将其转换为
sbyte[]
。这不是你想要的。

为什么要在可以复制/粘贴时截图?翻转字节数组。Java使用Big-Endian,C#(很可能)使用little-Endian。更多信息:可能重复我将byte[]数组翻转为sbyte[],但现在我需要从sbyte[]创建BigInteger,BigInteger构造函数不接受sbyte[]我没有尝试将byte[]转换为sbyte[],已经完成了,我正在尝试从sbyte[]而不是byte[]创建BigInteger,我无法。。。非常感谢,我认为这个小尾端与转换或其他东西有关,有符号或无符号与小尾端或大尾端无关。sbyte[]转换仅将未签名重新解释为已签名。它不会反转整个阵列。