返回介绍

1.4.1 常量和变量类型

发布于 2025-03-08 16:28:29 字数 3730 浏览 0 评论 0 收藏 0

a) 常量

常量是指其值始终不变的一些量。整型、实型、双精度和复型常量是算数型常量,也为常数。

整型:默认值为 4 字节(其它为 1,2,8 字节,Compaq Visual Fortran 允许在 Alpha 机上使用 8 字节整数)。4 字节 32 位(bit) 中用一位存放数值的符号,其余为数本身(用二进制表示)。第 1 位为 O 表示“正”,“1”表示“负”。由于用有限的内存单元存储一个整数,因此整数的范围是有限的:-231—231-1,即-2147483648—2147483647 之间,大约为±21 亿。

11111111 11111111 11111111 11111111 = -1

11111111 11111111 11111111 11111110 = -2

10000000 00000000 00000000 00000000 = -2147483648

01111111 11111111 11111111 11111111 = 2147483647

例:12345678 -256 (1,000,000 或 125. 是错误的)

1234567890123_8 (8 字节整数) (F90)

912345678901_k (k 为定义精度的参量) (F90)

实型:默认值为 4 字节(其它为 8 字节)。实数是有小数点的数,有效位数为 7 位,其绝对值的范围与计算机系统和精度型(单精度和双精度)有关。实数有两种表示形式:

小数形式:即日常习惯使用的小数形式。

3.141592 -0.125 3.0 -2. 等

3.14159265358979_8 (8 字节实数) (F90)

2.7182818_p (p 为定义精度的参量) (F90)

指数形式:用指数形式表示的实数由两部分组成,即数字部分和指数部分。

7.8E-12 -0.125E5

0.125D+45(双精度,8 字节)

在计算机内存中存储一个实数(不论是用小数形式表示或以指数形式表示) 时情况与整数不同。实数在内存中一律以指数形式存放,它由三个部分组成:(1) 数符;(2) 指数包括符号;(3) 数字部分。数字部分最前面有一个隐含的小数点。用 4 个字节(32bit) 来存储时,1 位存储数的符号,7 位存储指数部分,24 位存储数字部分。由于存储指数部分和数字部分的值(bit) 长是有限的,因此一个实数的有效数字和数的范围都是有限的。

如果以 24 位来存储一个数,它最大可以存储十进数为 224-l(减 1 是因为规定小数点后第一个数字不能为零,以便充分利用有限的 bit 位来存储有效数字),即 16777215。也就是说可以存放 0—16777215 这个范围内的数,超过这个范围的数是不能存储的。可见,只能有 7 位有效数字(16777215 虽然是八位数,但并不是所有 8 值数都能有效存储)。如果某计算机系统用 n 个二进位来存储一个实数的数字部分,则该实数的十进制数的有效数字位数大体上略小于 n/3。

一个实数的范围也是有限的,这主要是由于存储实数的指数部分的位长是有限的。如果一个数的绝对值超过此范围,就会出现“溢出”,绝对值比上界大的称为“上溢”,系统对此按数据出错处理。比下界小的称为“下溢”,大多数计算机系统将该数据按零处理。[ e_141_01.f ] [ e_141_02.f90 ]

 

复 型:默认值为 2×4 字节(其它为 8 字节)。实部与虚部用括号围起来表示:(实数,实数)。

逻辑型:默认值为 4 字节(其它为 1 字节)。其值只能为:.TRUE.(真) 和 .FALSE.(假)。

字符型:1 个字符为 1 字节(中文系统中为 2 字节)。用 ' '(F90:" ") 围起来的字符串。

例:"I'm a boy." (長为 10 字节)

'I''m a boy.' (長为 10 字节)

数 组:这不是一种单独的类型,可把同类型的常量用一维维数括起来表示:(/常量,常量,...,常量/)。 (F90)

b) 变量

变量是指在程序运行期间其值是可以变化的量。系统为程序中的每一个变量开辟一个存储单元,用来存放变量的值。

常量是分为类型的,而变量是用来存放常量的,因此变量也相应地区分为整型变量 INTEGER、实型变量 REAL、双精度变量 DOUBLE PRECISION、复型变量 COMPLEX、逻辑型变量 LOGICAL、字符型变量 CHARACTER。在程序中应当说明哪些变量是整型变量,哪些变量是实型变量。变量在内存中所占的字节数和数据存储形式与相应类型的常数相同。例如,实型变量一般占 4 个字节,按指数形式存放。在程序中规定变量的类型可以用以下几种方法。

隐含约定:Fortran 规定,凡以字母 I,J,K,L,M,N 六个字母开头的变量名,如无另外说明则为整型变量。以其它字母开头的变量为实型变量。可以将这个隐含约定称为“I—N 规则” ,表示用 I 到 N 之间的字母开头的变量为整型。例如:I,J,IMAX,NUMBER,LINE,JOB,Kl 为整型变量,而 A,Bl,COUNT,AMOUNT,TOTAL,BOOK 为实型变量。

类型指定:如果想改变“I—N 规则”对变量类型的约束,可以用类型说明语句专门指定某些变量的类型。Fortran 中有六个类型说明语句:

(1)INTEGER 语句(整型说明语句)

(2)REAL 语句(实型说明语句)

(3)DOUBLE PRECISION 语句(双精度说明语句)

(4)COMPLEX 语句(复型说明语句)

(5)LOGICAL 语句(逻辑型说明语句)

(6)CHARACTER 语句(字符型说明语句)

IMPLICIT 语句(隐含说明语句) 指定:可以用 IMPLICIT 语句将某一字母开头的全部变量指定为所需的类型,还可以用一个 IMPLICIT 语句同时指定几种类型。例如:

IMPLICIT INTEGER (A,C,T-V)

IMPLICIT REAL (I,J)

IMPLICIT INTEGER (A,B),REAL(I,K),INTEGER (X-Z)

注:(1) 以上三种方法中,以类型说明语句最优先,IMPLICIT 语句次之,“I—N 规则”的隐含约定级别最低。如下程序中 IMAX 变量为整型,而其它以 I、J 开头的变量为实型:

IMPLICIT REAL(I,J)

INTEGER IMAX

(2) 类型说明语句和 IMPLICIT 语句是非执行语句。

(3) 类型说明只在本程序单位内有效。

(4) IMPLICIT 语句和类型说明语句应该出现在本程序单位中的所有执行语句之前,其中 IMPLICIT 语句又应在所有的类型说明语句之前。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文