【问题标题】:Is it possible to create an integer of any size with dynamic memory?是否可以使用动态内存创建任意大小的整数?
【发布时间】:2021-09-15 01:51:10
【问题描述】:

是否可以使用动态内存分配或其他方法来制作 1000 位(或 1024 位)整数变量?

显然,这是一个疯狂的数字,但我只是以这个数字为例。基本上,我可以制作我想要的任何大小的整数吗?我在想也许动态内存分配会起作用,或者可能与 char 数组有关?

【问题讨论】:

  • 没有。 CPU 只能对其原生整数大小进行算术运算。
  • 您可以分配任意数量的内存并将其称为“整数”,但您必须自己进行操作和算术。
  • 大小不一,只要系统给你。这可能比物理内存大;操作系统可以使用交换空间来提供额外的内存,但是有一些限制。
  • ...我刚刚学到了很多...

标签: c bigint


【解决方案1】:

取决于你的确切意思。
如果您的意思是“编译器知道如何处理并且可以与内置算术运算符一起使用的功能齐全的int”,答案是否定的。
如果您的意思是“分配任意大小的内存,我将其视为连续整数并为其编写我自己的自定义数学函数”,答案肯定是肯定的,实际上有 several libraries 正是这样做的。

【讨论】:

  • 完美!我对此的推理是好奇心和实际应用的结合(即编写代码来查找巨大的素数)。我很好奇计算机如何能够存储和处理数百万位数的数字。
【解决方案2】:

是的。例如GNU Multiple Precision Arithmetic Library (GMP) 就是这样做的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 2023-04-09
    相关资源
    最近更新 更多