【问题标题】:How to deal with large numbers which cannot be store by int in c [closed]如何处理c中无法通过int存储的大量数字[关闭]
【发布时间】:2016-02-11 19:55:05
【问题描述】:

我正在尝试对最多 10^18 的数字进行模运算符。我无法将这些数字存储在 int 中,如果我将其设为浮点数,则我无法应用模数运算符,我该怎么做。

我搜索了它,但没有找到我的答案。

我找到了一种类型转换的方法,但它不能解决我的问题,另一种是使用数组。

所以,只有使用数组的方法。

【问题讨论】:

标签: c floating-point modulus


【解决方案1】:

使用long long int,范围从 -9,223,372,036,854,775,808 到 +9,223,372,036,854,775,807。对于无符号值,您可以使用unsigned long long int,范围从 0 到 18,446,744,073,709,551,615

这是你的选择

long long
long long int
signed long long
signed long long int
unsigned long long
unsigned long long int

【讨论】:

  • 是的,它更像是取决于平台,并且user3386109编辑的版本是正确的。
  • int 是可选的,所以 long long 等于 long long int,但我建议使用 long long int 对非 C 或新 C 程序员来说更清楚。
【解决方案2】:

对于长数字,您可以使用 unsigned long long int 或 long long int 如果这对您不起作用,那么您可以使用归档来存储值。

【讨论】:

  • “使用归档存储值”?
猜你喜欢
  • 2011-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-16
  • 1970-01-01
  • 2011-02-08
相关资源
最近更新 更多