2009-03-06 38 views
5

Tôi đang làm việc trên một dự án yêu cầu tôi làm việc với số lớn hơn số liệu kiểu số lớn nhất trong c. Tôi đã suy nghĩ của việc sử dụng cấu trúc với các lĩnh vực bit để đại diện cho điều này, nhưng nó đã có mùi hôi. Có ai có lời khuyên nào không? (Không tìm kiếm một thư viện, nhiều hơn một quá trình suy nghĩ để đi phía sau làm một cái gì đó như thế này.)Cách tốt nhất để thể hiện số lượng lớn tùy ý trong c là gì?

+0

Tôi không đồng ý rằng đây là bản sao chính xác của tham chiếu. Tôi không tìm kiếm một thư viện (nên có quy định đó), nhưng thực hành tốt nhất của dữ liệu số lớn. Trong trường hợp này nó là trên Linux, nhưng điều này sẽ là nền tảng bất khả tri. – sdellysse

Trả lời

5

Tôi đề nghị đầu tiên hãy xem thư viện GNU MP Bignum.

Nếu giấy phép là vấn đề bạn phải tự cuộn. Lựa chọn đầu tiên của tôi cho kiểu dữ liệu sẽ là một mảng đơn giản của các ký tự không dấu cùng với một số dữ liệu bổ sung để biểu thị mảng đó lớn đến mức nào.

Something như thế này:

typedef struct 
{ 
    unsigned char * NumberData; 
    size_t   AllocatedSize; 
} MyBigNum; 

nên là đủ.

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