Мне нужно преобразовать массив sbyte в BigInteger. Я на универсальной платформе Windows. Конструктор BigInteger принимает только байты [], а не sbyte []. Я не могу использовать byte [], поскольку в байте C# по умолчанию нет знака, и я получаю более высокие значения, чем 128.C# массив sbyte для BigInteger
Массив sbyte преобразуется из массива байтов, потому что когда я сравниваю значение BigInteger, возвращаемое C#, отличается от значение в Java, поскольку java по умолчанию использует подписанные байты, а C# использует unsigned.
Любое решение? BigInteger в Java: 78214101938123633359912717791532276502 BigInteger в C# 30381787179362266836169791328776673082
Edit: Я пытаюсь сделать BigInteger из SByte [] массива. Я не пытаюсь преобразовать байт [] в sbyte []
Почему скриншот, когда вы можете копировать/вставлять? –
Переверните массив байтов. Java использует Big-Endian, C# (скорее всего) использует little-endian. Дополнительная информация: [Википедия] (https://en.wikipedia.org/wiki/Endianness) –
Возможный дубликат [Как преобразовать sbyte \ [\] в byte \ [\] в C#?] (Http: // stackoverflow.com/questions/829983/how-to-convert-a-sbyte-to-byte-in-c) –