![](/img/trans.png)
[英]C# - Converting String array to sbyte** (String[] to sbyte**)
[英]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.