c - 在 C 中存储和使用大数

标签 c exponentiation

我需要帮助处理非常大的数字。根据Windows计算,​​指数

174^55 = 1.6990597648061509725749329578093e+123 

我如何使用 C(c99 标准)存储它?

int main(){
  long long int x = 174^55; //result is 153
  printf("%lld\n", x);
}

最佳答案

C 中的普通类型通常最多只能存储 64 位,因此您必须在数组中存储大数字,并自己编写数学运算。但你不应该在这里重新发明轮子 - 你可以尝试 GNU Multiple Precision Arithmetic Library为此目的。

正如注释已经指出的那样,^ 运算是二进制异或。对于求幂,您必须使用 pow 等数学函数。

关于c - 在 C 中存储和使用大数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54693070/

相关文章:

c - 如何在 C 语言中获取当前语言环境的格式化日期和时间?

c - 如何让程序只接受c中的正整数值

c - 在c中哪里以及如何使用fwrite函数

c - 模幂函数返回错误的 int 值

math - a^b^c 的最后一位

c++ - C++ 中的模幂运算

c - 带有省略号的函数会导致段错误

C alloca 函数 - 当尝试分配太多内存时会发生什么

java - Java 中的模幂问题

java - 返回大幂 (mod 2^32)