2

我需要在 fortran 中创建一个仅包含 1 和 -1 的大型整数数组。有人可以建议我如何定义这样一个占用尽可能少的内存空间的数组吗?

谢谢

4

2 回答 2

2

一个简单的方法:

use ISO_FORTRAN_ENV

integer (INT8), dimension (N) :: array

这将为您提供字节大小的整数。(除非编译器实际上选择用更大的整数来实现它们,这似乎不合理但可能是允许的。)

如果数组真的很大并且不适合存储,您可以访问变量中的位,但这不是一个简单的数组。

于 2014-03-21T16:41:01.230 回答
1

如果您将所有 -1 转换为 0,那么您的数组的每个成员只需要一位。给定这样一个仅包含 1 和 0 的转换数组,将其打包成 32 位或您喜欢的任何大小的整数并不难。

于 2014-03-21T18:15:21.783 回答