Портирование куска кода (класс BigIntiger) с Java в C#

Рейтинг: 1Ответов: 1Опубликовано: 07.04.2015

Доброго времени суток.

Как портировать данный код на C#?

BigInteger mod = new BigInteger(1,new byte[]{9,8,7,6,5,4,3,2,1});
System.out.println(mod);

Ответы

▲ 3Принят

Никак. Классы BigInteger в C# и Java используют различное внутреннее представление.

Простой и надёжный пособ: преобразуйте число Java в строку (в вашем случае "166599134359138271745"), а потом распарсите его в C# с помощью BigInteger.Parse.

Если вам критична производительность, то можете пошаманствовать с изменением порядка байтов (little endian, big endian) и добавлением нулевого байта в начале массива. См. Java BigInteger vs Mono .net BigInteger.

А вообще, вот так ваше число получилось:

Console.WriteLine(new BigInteger(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }));