2013-10-06 64 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实现支持它。如果您需要从输入读取大数字,您可能还需要''和它提供的格式说明符。 –

相关问题