C # тип памяти больше чем ulong - PullRequest
5 голосов
/ 01 ноября 2011

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

Ответы [ 3 ]

20 голосов
/ 01 ноября 2011

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

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

4 голосов
/ 01 ноября 2011

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

1 голос
/ 01 ноября 2011

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

System.Numeric.BigIntegers в .NET 4, вероятно, будет работать нормально.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...