c - 如何处理不能通过 int 在 c 中存储的大数

标签 c floating-point modulus

<分区>

我正在尝试对高达 10^18 的数字进行模运算。我不能将这个数字存储在 int 中,如果我把它当作 float ,那么我就不能应用模数运算符,所以我该怎么做。

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

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

所以,只能用数组了。

最佳答案

使用范围从 −9,223,372,036,854,775,808 到 +9,223,372,036,854,775,807 的 long long int。对于无符号值,您可以使用 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

关于c - 如何处理不能通过 int 在 c 中存储的大数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35348837/

相关文章:

c - 如何回应用户输入并跳过标点符号和空格? (语言C)

c - printf 未知精确类型的整数

c++ - 为什么双重优先于 float ?

c - 模运算似乎不适用于所有值的 64 位值

c++ - 查找循环队列中的元素数

C:如果参数从右向左压入,为什么会出现下面的情况? (64位操作系统,32位程序)

c - 为什么这些 printfs 的行为不同?

c++ - 读取浮点值时出错

c++ - 将 float 向上舍入为整数,这有多可靠?

javascript - 使用带有模数运算符的数组索引确定值