2008-11-04 44 views
6

thể trùng lặp:
Big integers in C#Làm thế nào để bạn làm toán (hoặc toán học) với số lớn hơn MaxValue trong C#?

Tôi muốn để có thể xử lý số tùy tiện lớn trong C#.
Tôi có thể sống chỉ với số nguyên.

Có các thuật toán được thiết lập cho loại điều này không?
Hoặc có thư viện bên thứ ba tốt không?

Tôi có thể xem xét thay đổi ngôn ngữ nếu thực sự không có cách nào tốt để làm điều đó trong C#.

Cảm ơn mọi trợ giúp/đề xuất.

Trả lời

3

Bạn có thể muốn kiểm tra Big Num loại thư viện. Trong C#, những cái phổ biến nhất là: IntXW3b.Sine, cộng thêm, cả hai đều là mã nguồn mở.

+0

Cảm ơn các liên kết, havent nhìn thấy những 2 trước :) Có lẽ họ sẽ nhanh hơn so với rác trong DLR! – leppie

1

Nếu bạn chỉ cần số lượng rất lớn, bạn có thể sử dụng long (64 bit) hoặc thậm chí decimal (điểm nổi 128 bit).

Nếu bạn cần giá trị lớn hơn 9223372036854775807 (long) hoặc 79228162514264337593543950335 (decimal), thì bạn cần bỏ qua câu trả lời này.

3

Ai đó đã thực hiện một lớp BigInteger trong C# tại codeproject C# BigInteger Class. Kiểm tra giá trị.

Và một mẫu của các thuật toán nói chung có thể được tìm thấy tại địa chỉ: Re: Hi-prec math for visual studio c#? (Đó là bài ở dưới cùng của trang với các đoạn mã)

2

Khi mọi người đã đề cập, có những triển khai của bên thứ 3 khác nhau của một Lớp BigInteger. Ngoài ra, C# 4.0 sẽ nhận được một lớp BigInteger bản địa trong CLR.

Các vấn đề liên quan