Как-то нечего было делать и захотелось попробовать unit testing в деле. Решил написать класс для работы с arbitrary precision integers на чистом C#. Ну а сегодня решил выложить сюда — вдруг кому пригодится.
Собственно, сабж:
http://rsdn.ru/File/27948/IntX.zip
В архиве VS.NET 2003 solution из 2-х проектов: собственно класс IntX и набор юнит-тестов для него. Документации нету, всё описано в юнит-тестах. Для работы юнит-тестов надо MbUnit (скачать MbUnit можно тут:
http://www.testdriven.net/).
Забыл вчера пример использования разместить. Вот, собственно, он:
// Посчитаем (2^1024 - 1234567890987654321 * 77) % 0xFFFF0000FFFF
IntX n = (IntX.Pow(2, 1024) - IntX.Parse("1234567890987654321") * 77) % new IntX("0xFFFF0000FFFF");
// Ну и выведем результат в десятичной и двоичной системах счисления
Console.WriteLine("dec: {0}", n);
Console.WriteLine("bin: {0}", n.ToString(2));