欢迎来到天天文库
浏览记录
ID:52099147
大小:348.84 KB
页数:18页
时间:2020-03-31
《《种别和属性》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章种别和属性在前面的章节中,谈到过数值型常量的存储空间问题。不同精度的数值所需的存储空间是不同的,相应的变量也应该与常量的存储空间一致。如果变量的存储空间不够,则会造成常量在存储时的精度丢失。在Fortran中,可以通过种别参数来指定变量的储存空间,从而达到优化使用存储空间、防止精度丢失的目的。本节主要介绍种别和属性的基本概念。5.1种别概述种别是一个全新的程序设计概念。通过它,程序员可以更灵活的控制程序所占用的存储空间。本节将对种别的一些基本概念进行介绍。5.1.1种别的概念种别是Fortran90/9
2、5标准中才开始引入的一种表示数据大小和精度的概念。引入种别的概念后,Fortran中的数据,不仅仅有一个类型所属,并且同一类型下还可进一步分出若干个种别。种别数值的大小确定了该类型数据实际的大小范围和存储精度。这就好比动物学中的分类,在猫科动物这一大的类型之下,还有老虎、猎豹、家猫等的进一步划分,它们的个头会有很大差异。有了种别说明之后,计算机程序会更容易在不同硬件和软件平台间进行移植。由于目前的计算机系统并不统一,多种体系平台的现象依然客观存在。在不同的平台上,同种类型的变量可能规定了不同的精度范围。因此,
3、在某种计算机上正确运行的程序在另一种计算机上运行时就有可能出现溢出等现象。有了数据的种别属性之后,就可以有效避免这种情况的发生。5.1.2种别的使用在变量声明中,种别由种别说明符进行说明。带种别说明符的类型说明语句的基本语法形式如下:类型说明([KIND=]种别值)[::]变量名列表种别说明符写在类型说明语句后的括号内,由关键字KIND,赋值号“=”以及种别值组成。其中,关键字KIND和赋值号“=”可以省略。例如程序中要说明一个实型变量A,种别值为4;一个字符型变量C,种别值为10;一个整型变量K,种别值为8
4、。那么可以用下面的代码来进行声明:REAL(KIND=4)::ACHARACTER(KIND=10)::CINTEGER(KIND=8)::K5.2种别值和种别函数前面已经提到过了,由于Fortran国际标准中只是提出了数据的种别概念和定义,但并没有规定统一的种别分类和相关的数值定义。这一现象是由于当前计算机体系并不统一的现实造成的。因此,具体的种别值是由各个编译器厂商自行确定的。本节主要介绍CompaqVisualFortran编译系统中提供的几类种别值。5.2.1整型数据的种别整型数据在CompaqVis
5、ualFortran中被划分为4种种别,种别值即表示整型数据所占内存空间的字节数n。表所示是CompaqVisualFortran中定义的几种整型数据种别。整型数据的种别种别值n取值范围(-28n-1—28n-1-1)备注INTEGER([KIND=]1)或INTEGER*1-128到127INTEGER([KIND=]2)或INTEGER*2-32768到32767INTEGER([KIND=]4)或INTEGER*4-2147483648到2147483647缺省值INTEGER([KIND=]8)或IN
6、TEGER*8-9223372036854775808到9223372036854775807仅适用于Alpha芯片机型5.2.2实型数据的种别实型数据在CompaqVisualFortran中被划分为3种种别。在Fortran90/95标准中并没有明确规定实型数据中指数的允许范围和有效位数,表中的数据仅适用于CompaqVisualFortran。实型数据的种别种别值取值范围备注REAL([KIND=]4)或REAL*410-38到1038,7位有效数字缺省值REAL([KIND=]8)或REAL*810-
7、308到10308,15位有效数字等价于双精度型DOUBLEPRECISIONREAL([KIND=]16)或REAL*16仅用于OpenVMS、Tru64UNIX、Linux操作系统5.2.3复型数据的种别复型数据在CompaqVisualFortran中被划分为3种种别,如表所示。每种表示实型数据的方法都可以用来表示复型数据的实部和虚部,数据的取值范围可以参考前一小节。需要注意的是简写写法与完整写法之间的差别。复型数据的种别种别值备注COMPLEX([KIND=]4)或COMPLEX*8缺省值COMPLE
8、X([KIND=]8)或COMPLEX*16等价于双精度复型DOUBLECOMPLEXCOMPLEX([KIND=]16)或COMPLEX*32仅用于OpenVMS、Tru64UNIX、Linux操作系统5.2.4逻辑型数据的种别逻辑型数据在CompaqVisualFortran中被划分为4种种别,如表所示。由于逻辑型数据只有两种,即TRUE(真)和FALSE(假),因此不管具体是何种种别,使用上并
此文档下载收益归作者所有