gpt4 book ai didi

variables - 为什么整数变量大小受到限制(限制为 32/64 位等)?

转载 作者:行者123 更新时间:2023-12-04 17:20:22 25 4
gpt4 key购买 nike

为什么内置 Integer 变量类型(以及一些其他数字基元)的大小限制为 32 或 64(很少高达 128)位,即使在更现代的语言中,如 SwiftRust ?我意识到,在内存严重受限的过去,限制变量的大小是有意义的,但现在我们手头有数 GB 的内存,为什么还要将自己限制在这么小的数量上呢?就此而言,是什么阻止我们像动态调整数组大小那样动态调整数值变量的大小?

我承认我不太了解计算机/编译器如何在低级别处理变量,但我看不出这些限制为何如此的任何具体原因(除非可能是数学运算所需的内存呈指数增长?)

最佳答案

任何物理上实现的计算机都是用真实的硬件制造的。硬件就是这样——它由金属、塑料和玻璃以某种方式排列而成。有专门用于执行加法、减法等运算的专用电路。

用于存储一些数字的内存量可以在运行时确定。也许您需要四位,也许是 64 位,也许您需要用一千或一百万位数字来表示数字。没关系;只要您向系统添加足够的内存,就可以表示这些东西。然而,与数字一起工作的硬件——金属、塑料、玻璃和电路——不能以同样的方式扩展。您不能简单地添加更多晶体管或将它们拿走以对更小或更大的数字进行加法运算。您必须选择硬件基本工作的最大尺寸;它可以是任何特定数字,虽然它可以是任何数字,但它必须是特定。一旦选择,就是这样。

这解释了为什么选择任何 数字。一个必须是。但是,为什么不选择更大的数字呢?我想这里有一个实际问题,硬件理解的最大无符号整数大小通常与可用内存空间量相关。当 4GB 内存超出程序所需时,就没有内在需要大于 2^32 的数字。使用 64 位无符号整数,我们现在可以引用大约 1700 万千兆字节;如果这相对于虚拟内存地址空间的大小变得不够(如果现代应用程序设计的趋势继续下去,也许我们会到达那里!),我认为我们都可以合理地假设新的 128 位架构将成为常态。

这可能不是问题的另一个原因是通用业务处理和商业应用程序通常不需要这么大的数量;因此,那些使用计算机进行这些应用程序的人(可能不是技术人员)的需求得到了满足。另一方面,如此大量的技术用户可能对他们有用,他们已经知道如何绕过硬件限制,因此需求并不那么紧迫(一般来说,它在经济上也可能不合理;经济有多少取决于显示下一个广告的 JavaScript 或按计划进行的 ACH 转移,而不是依赖于基础研究的经济部分是否继续顺利?是的,研究的长期利益是真实的,但这并不影响本季度的损益).

关于variables - 为什么整数变量大小受到限制(限制为 32/64 位等)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66575220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com