gpt4 book ai didi

Fortran:整数*4 vs 整数(4) vs 整数(kind=4)

转载 作者:行者123 更新时间:2023-12-01 22:16:42 29 4
gpt4 key购买 nike

我正在尝试学习 Fortran,并且看到了很多不同的定义,我想知道他们是否正在尝试完成同样的事情。以下有什么区别?

  • 整数*4
  • 整数(4)
  • 整数(kind=4)

最佳答案

在 Fortran >=90 中,最好的方法是使用内部函数来指定所需的精度 - 这既保证了可移植性,又保证了您获得所需的精度。例如,要获取支持至少 8 位十进制数字的整数 imy_int,您可以使用:

integer, parameter :: RegInt_K = selected_int_kind (8)
integer (kind=RegInt_K) :: i, my_int

RegInt_K(或您选择的任何名称)定义为参数后,您可以在整个代码中将其用作符号。这也使得更改精度变得容易。

请求 8 或 9 位十进制数字通常会获得 4 字节整数。

integer*4 是一个常见的扩展,可追溯到旧版 FORTRAN,用于指定 4 字节整数。尽管如此,这种语法现在不是、也从来不是标准的 Fortran。

integer (4)integer (RegInt_K)integer (kind=4)integer (kind= RegInt_K)integer (4)integer*4 不同,并且不可移植——语言标准没有指定种类的数值。大多数编译器使用 kind=4 表示 4 字节整数 - 对于这些编译器,integer*4integer(4) 将提供相同的整数类型——但也有异常(exception),因此 integer(4) 是不可移植的,最好避免使用。

实数的方法类似。

更新:如果您不想按所需精度指定数字类型,而是按它们将使用的存储来指定,Fortran 2008 提供了一种方法。实数和整数可以通过使用ISO_FORTRAN_ENV模块后的存储位数来指定,例如,对于4字节(32位)整数:

use ISO_FORTRAN_ENV
integer (int32) :: MyInt

gfortran 手册在“内在模块”下有文档。

关于Fortran:整数*4 vs 整数(4) vs 整数(kind=4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3170239/

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