整数型,一个整型数据用来存放整数,TSL语言中的整型数据是一个带符号的32位数据,其可以表达的数值范围是-2147483648..2147483647。
整数的基础含义每个读者都明白,和实数类似的,在TSL中,用户一般也无需理解整数的具体表达方式,直接使用就可以了。
但是和实数一样,当处理字节流或者和DLL发生关系的时候,整数在计算机中的具体表示就显得重要了。
其他计算机里的整数类型:
Byte,ShortInt:字节,短整,顾名思义,存贮为8位,占用一个字节。可表达的范围为:有符号为-128~127,无符号为0~255。所谓有符号或者无符号是指出是否需要可以表达负数。
Word,SmallInt:字,小整,存贮为16位,占用两个字节。可表达的范围为:有符号-32768~32767,无符号0~65535。
Dword,LongInt:双子,长整,存贮为32位,占用四个字节。可表达的范围为:有符号-2147483648~2147483647,无符号0~4294967295。所谓2G,4G就是指的有符号或者无符号下32位最大的表达大小。
Int64:64位整数,存贮为64位,占用8个字节,可表达范围为:-2^63~2^63-1。
TSL里默认采用的整数是有符号的LongInt,但是提到整数运算,不得不提到关于绝大多数语言里的整数溢出问题。例如,在C语言中,如果整数运算越界了,例如无符号的4294967295+1,结果为0。在TSL语言中,为了应用开发的简便性,当溢出的时候,数据会自动转为浮点数来处理,变为浮点的4294967296。所以一般情况下,用户可以不用理会数据运算溢出问题。当然特殊情况下例外,假如用户需要将运算结果存贮到数据库或者文件字节流中,由于运算溢出了,而原来设计存贮的数据类型不足以表达,依旧会产生问题。
TSL语言的整数常量支持如下四种表达方法:
直接由数字表达十进制,如100表示十进制100。
由数字E密表达十进制,如1E2表示十进制100。
由0x开头表示十六进制,如0x100表示十进制的256。
由0b开头表示二进制,如0b100表示十进制的4。
由0o开头表示八进制,如0o100表示十进制的64。