清华大学出版社 TSINGHUA UNIVERSITY PRESS 则变量a的数值范围为-32768~32767。而变量b的 数值范围为0~65535。 图3.4(a)表示有符号整型变量a的最大值(32767)。 图3.4(b)表示无符号整型变量b的最大值(65535)。 符号位 有符号整型 变量a 32767 (a 无符号整型 65535 变量b (b 代表数据 的第1位 图3.4
则变量a的数值范围为-32768~32767。而变量b的 数值范围为0~65535。 图3.4(a) 表示有符号整型变量a的最大值(32767)。 图3.4(b) 表示无符号整型变量b的最大值(65535)。 图3.4
清华大学出版社 TSINGHUA UNIVERSITY PRESS C标准没有具体规定以上各类数据所占内存字节数, 只要求long型数据长度不短于int型,shortz型不长 于it型。具体如何实现,由各计算机系统自行决 定。如在微机上,int和short都是16位,而long是 32位。在Vax750上,short是16位,而int和1ong 都是32位,一般以一个机器字(word存乓桓鰅nt 数据。前一阶段,微机的字长一般为16位,故以 16位存放一个整数,但整数的范围太小,往往不 够用,故将1ong型定为32位。而Vax的字长为32 位,以32位存放一个整数,范围可达正负21亿, 己足够用了,不必再将1ong型定为64位。所以将 int和long都定为32位。通常的做法是:把long定 为32位,把short定为16位,而int可以是16
C标准没有具体规定以上各类数据所占内存字节数, 只要求long型数据长度不短于int型,short型不长 于int型。具体如何实现,由各计算机系统自行决 定。如在微机上,int和short都是16位,而long是 32位。在Vax 750 上,short是16位,而int和long 都是32位,一般以一个机器字(word)存乓桓鰅nt 数据。前一阶段,微机的字长一般为16位,故以 16位存放一个整数,但整数的范围太小,往往不 够用,故将long型定为32位。而Vax的字长为32 位,以32位存放一个整数,范围可达正负21亿, 已足够用了,不必再将long型定为64位。所以将 int和long都定为32位。通常的做法是:把long定 为32位,把short定为16位,而int可以是16
清华大学出版社 TSINGHUA UNIVERSITY PRESS 位,也可以是32位。这主要取决于机器字长。在 微机上用long型可以得到大范围的整数,但同时 会降低运算速度,因此除非不得已,不要随便使 用long型。 方括弧内的部分是可以省写的。例如signed short int与short等价,尤其是signed是完全多余的, 一 般都不写signed。一个整数(以13为例)在存储 单元中的存储情况,见图3.5所示(假设使用的是 微机上的c编译系统,如turbo C、MsC)
位,也可以是32位。这主要取决于机器字长。在 微机上用long型可以得到大范围的整数,但同时 会降低运算速度,因此除非不得已,不要随便使 用long型。 方括弧内的部分是可以省写的。例如signed short int与 short等价,尤其是signed是完全多余的, 一般都不写signed。一个整数(以13为例)在存储 单元中的存储情况,见图3.5所示(假设使用的是 微机上的c编译系统,如turbo C、 Ms C)
清华大学出版社 TSINGHUA UNIVERSITY PRESS 01000000000001101 int型 符号位 01000000000001101 short型 010000000000000000000000000001101 long型 00 0000 00000011 01 unsigned int 0000000000001101 unsigned short型 00000000000000000000000000001101 unsigned long型 图3.5
图3.5
清华大学出版社 TSINGHUA UNIVERSITY PRESS 3.整型变量的定义 前面已提到,c规定在程序中所有用到的变量都必 须在程序中定义,即“强制类型定义”。这是和 basic、.fortran不同的,而和pascal相类似。例如: inta,b;(指定变量a、b为整型) unsigned short c,d;(指定变量c、d为无符号 短整型) long e,f; (指定变量e、f为长整型) 对变量的定义,一般是放在一个函数的开头部分的 声明部分(也可以放在函数中某一分程序内,但 作用域只限它所在的分程序,这将在第6章介绍)
3. 整型变量的定义 前面已提到,c规定在程序中所有用到的变量都必 须在程序中定义,即“强制类型定义”。这是和 basic、fortran不同的,而和pascal相类似。例如: int a,b;(指定变量a、b为整型) unsigned short c,d;(指定变量c、d为无符号 短整型) long e,f; (指定变量e、f为长整型) 对变量的定义,一般是放在一个函数的开头部分的 声明部分(也可以放在函数中某一分程序内,但 作用域只限它所在的分程序,这将在第6章介绍)