8.1.1.4 数据类型

为了便于对数据进行加工处理,需要对数据进行分类,这种分类称为数据的类型。基本数据类型是M语言中预定义的数据类型,M语言的基本数据类型有6类:整数类型(int)、浮点类型(单精度型float,双精度型double)、无符号字符类型(byte)和空类型(void)

Ø  整型

整数类型简称整型,用于定义整数对象,如1101024-34等,整型用int表示。整型数据在内存中以二进制形式存储。int型数据在内存中的最高位表示数的正负,1表示负数,0表示为正数,如下图所示。

    由于计算机的存储单元的大小是有限的,因此对于一个数据,计算机总是分配有限的位来存储它,M语言中int型数据用32bit(注:此处的bit表示二进制位,下面简称“位”)来存储一个正数,那么能够放到该存储单元中的数据的范围按二进制形式可以表示为:

按照int数据来理解,该范围为: -21474836482147483647 

Ø  浮点型

浮点类型简称为浮点型也称实型,用于定义实数,如3.149.8-1.23等。计算机系统对浮点数的存储采用了IEEE754标准,在内部将一个浮点数转换成二进制形式的科学计算法,然后分别存储符号、指数和尾数部分。假设采用32位存储单元来存储178.125,先将178.125表示成二进制:

再将该二进制表示成规格化形式:

所谓规格化形式是指尾数部分一定为“1.*”的形式。最后,正数的符号为0(若为负数,则符号为1),存储的指数部分为134(7+127,127是系统规定的一个偏移量),存储的尾数部分为0110010001(省略了固定的1和小数点),如下图所示。

 从上图可看出,若指数部分的存储空间越大,则指数的范围变化越大,可表示的浮点数的范围大小就越大;尾数部分的存储空间越大,则能够表示出的小数点后的位数就越多,表示的精度就越高。为了适应实际的不同需要,M语言提供了float型、double这两种不同的浮点型,系统为这两种浮点类型分配的存储空间不同。

Ø  无符号字符型

无符号字符型简称为byte型,用于定义8位的数据。

Ø  布尔型

布尔类型简称为布尔型或逻辑型,在M语言用关键字bool表示。bool型的值只有两个:10,它们分别对应逻辑“真”和逻辑“假”。

Ø  空类型

空类型也称为空值型,表示无类型。在M语言中,空类型用关键字void表示。void类型描述了有关值的空集,变量不能说明为void类型。它用于说明没有返回值的函数。

数据类型确定了数据所占的内存空间大小,同时也确定了其所能存储的数据范围,这些是与机器有关的。

类型标示符

类型名

字节数

数值范围

bool

布尔型

1

10

byte

无符号字符型

1

0~255

int

整型

4

-21474836482147483647

float

单精度浮点型

4

-3.4×10381.7×1038

double

双精度浮点型

8

-1.7×103081.7×10308