Тип памяти C # больше, чем ulong

#c# #math

#c# #математика

Вопрос:

Мне нужно выполнить огромные вычисления мощности (думаю, 2 ^ 1 000 000) на C #, а ulong далеко не достаточно. Вероятно, в the нет ничего большего.NET, но есть ли какая-то сторонняя вещь или даже что-то, что я могу сделать, что будет работать?

Ответ №1:

Если вы используете .NET Framework 4.0, вы можете использовать BigInteger . Просто добавьте ссылку на System.Numerics сборку.

Существует множество других реализаций, если .NET Framework 4.0 вам недоступен, например, эта на CodeProject.

Комментарии:

1. Вау, никогда не знал об этом. Спасибо! Работает как шарм!

Ответ №2:

Вы можете использовать System.Numerics.BigInteger из .Net 4.0.

Ответ №3:

Термин, обозначающий то, что вы, похоже, ищете, — это «арифметика произвольной точности» и, в случае 2 ^ 1 000 000, целое число произвольной точности.

Система.Числовые.BigIntegers в .NET 4, скорее всего, будут работать нормально.

Если вам нужно использовать более раннюю версию .NET или любого другого языка или вам нужно больше возможностей или производительности, библиотека GMP — обычная остановка для необычной математики. GMP написан на C и доступен через оболочки практически для любого другого языка.