繁体   English   中英

C#字节数组到BigInteger

[英]C# sbyte array to BigInteger

在此处输入图片说明 我必须将sbyte数组转换为BigInteger。 我在通用Windows平台上。 BigInteger构造函数仅接受byte []而不接受sbyte []。 我无法使用byte [],因为默认情况下C#中的byte是无符号的,并且获得的值比128高。

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

有什么办法吗? Java中的BigInteger:78214101938123633359912717791532276502 C#中的BigInteger 30381787179362266836169791328776673082

编辑:我正在尝试从sbyte []数组制作一个BigInteger。 我不试图将byte []转换为sbyte []

翻转字节数组。 不要转换为sbyte[] 使用byte[]

这是数组形式的值(单值和无符号):

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

看看Endianess 如Java使用big-endian之前所述,C#使用little-endian 因此,翻转您的byte[]并停止将其转换为sbyte[] 这不是您想要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM