- 第一章 Fortran 语言程序设计初步
- 第二章 改变程序流程
- 第三章 循环结构
- 第四章 数据结构
- 第五章 数组
- 第六章 过程和模块
- 第七章 输入输出和文件
1.4.1 常量和变量类型
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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论