2013-10-06 34 views
0

我需要在C程序中存儲一個非常大的數字作爲整數,unsigned long int仍然太小,我需要一個非常大的數據類型,它仍然可以與模運算符%)。在一個整數中存儲非常大的數字C

+5

unsigned long long怎麼樣?這通常是64位。 –

+1

使用任意精度整數庫([某些鏈接在這裏](http://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic#Libraries)) –

+0

有時可以避免模操作本身。如果你可以使用模運算來完成所有的算術運算,並且你只需要取最終結果的模數,那麼模運算就可以被刪除。 –

回答

5

有幾個庫可以做到這一點

如果你需要它的加密目的(例如RSA你的模運算的需求爲暗示),OpenSSL的BN非常適合

+0

這是一個挑戰問題,不適用於密碼學,大數算術或密碼程序是錯誤的方法。 (我從問題文本中懷疑,但OP的歷史顯示了一個關於Project Euler的先前問題)。我期望問題被設計爲在正常整數的範圍內,只要模數屬性被智能使用。 –

+0

是的,我試圖找到有多少個因子有12個數字 –

+1

@DylanCleaver:包括''並使用'uint64_t'如果你的C實現支持它。如果您需要從輸入讀取大數字,您可能還需要''和它提供的格式說明符。 –