第3讲 常量、变量与标志符 整型、实型、字符型数据

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• 无符号型数据和其相应的有符号型数据占用相同的存储空间 无符号型数据和其相应的有符号型数据占用相同的存储空间 • 不同的C语言处理系统对这几类整型数所占用的字节数和数值范围 不同的C 只要求长整型(long) 有不同规定,只要求长整型(long)数据所占字节数不少于基本整 int),短整型(short) ),短整型 型(int),短整型(short)不多于基本整型 • 标准C基本整型占2个字节,VC基本整型占4个字节 标准C基本整型占2个字节,VC基本整型占 基本整型占4
例2.1 符号常量的使用
• 符号常量必须先定义, 例2.1:符号常量的使用 #define PI 3.14159 后使用。 main( ) • 定义格式为:
#define 常量名 字符串
• 习惯上用大写字母来 标识符号常量,用小 写字母来标识变量或 函数。
{float r, l, area; area; r=3.5; r=3 L2_01.c l=2*PI*r; l=2*PI*r; area=PI*r*r; area=PI*r*r; printf(“l=% area=% printf(“l=%f, area=%f\n”, l, area); area); }
2.整型变量
整型变量可以分为基本整型、短整型、长整型和 整型变量可以分为基本整型、短整型、长整型和无符号 可以分为基本整型 四种。 整型四种 本节只介绍基本整型的变量。 整型四种。本节只介绍基本整型的变量。 语言规定在程序中所有要用到的变量 变量, C语言规定在程序中所有要用到的变量,在使用前必须先 指定其类型,即对变量进行“定义”或者说明。 指定其类型,即对变量进行“定义”或者说明。 基本整型的变量用类型名关键字int 进行定义, 基本整型的变量用类型名关键字int 进行定义,定义形 式如下: 式如下: int k; /*定义变量 为整型变量* 定义变量k /*定义变量k为整型变量*/ int x1, x2, x3; /*定义变量x1, x2和x3均为整型变量*/ /*定义变量 定义变量x1, x2和x3均为整型变量 均为整型变量* 一般微机都会为每个已定义的基本整型的变量在内存 开辟2个连续的存储单元,一个存储单元可以存放8 中开辟2个连续的存储单元,一个存储单元可以存放8位的 二进制信息,一个基本整型的变量中具有16 16位 二进制信息,一个基本整型的变量中具有16位的二进制信 其中的最高数值位为符号位, 息,其中的最高数值位为符号位,它所能表示的数值范围 为:-32768~32767。 ~ 。
2.3 整型数据
整型数据包括整型常量和整型变量。 整型数据包括整型常量和整型变量。
1.整型常量 1.整型常量
(1) 十进制形式,如:100,0,-100 十进制形式,如:100, (2) 八进制形式,以数字0开头的八进制数 ,如: 八进制形式,以数字0 0157 ,即(157)8,其对应的十进制数值为: 其对应的十进制数值为: +5× +7× 111。 1×82+5×81+7×80,即111。八进制数中的数位符 号只能有8 号只能有8 个,即0~7。 7 (3) 十六进制形式,以数字字母0x开头的十六进制数, 十六进制形式,以数字字母0x开头的十六进制数, 如:0x157表示十六进制数157 如:0x157表示十六进制数157 ,即(157)16,其对 应的十进制数值为: +5× +7× 343。 应的十进制数值为:1×162+5×161+7×160,即343。 十六进制数中的数位符号为数字字符0 9 十六进制数中的数位符号为数字字符0~9和英文字 个字符。 母A~F等16个字符。 F 16个字符 C语言自动按常量的范围决定其类型。同时允许用户在整 型常量后面加上字符L(或l 型常量后面加上字符L(或l)表示长整型数据
5.整型常量的类型
在程序中出现一个整型常量,也应该是上述6种类别当 在程序中出现一个整型常量,也应该是上述6 分别进行处理。 中的一种, 语言会自动按以下5种情况分别进行处理 中的一种,C语言会自动按以下5种情况分别进行处理。 数值在-32768~32767的范围内的常量是int型。 的范围内的常量 (1) 数值在 的范围内的常量是int型 超过上述范围,但在-2147483648~2147483647的范 ( 2 ) 超过上述范围 , 但在 的范 围内,则认为它是long int型 再超则当实型处理。 围内,则认为它是long int型。再超则当实型处理。 标准C语言的int int与 int等同 等同。 (3)标准C语言的int与short int等同。 整型常量没有无符号的类型。 (4)整型常量没有无符号的类型。但整型常数可以直接 赋值给无符号类型的整型变量, 赋值给无符号类型的整型变量 , 只要常数的数值不超过 无符号整型变量的取值范围即可。 无符号整型变量的取值范围即可。 语言允许在一个整型常数后面加上字符L ( 5 ) C 语言允许在一个整型常数后面加上字符 L ( 或 l ) 表示一个长整型的数据, 100L为十进制长整型常量, 表示一个长整型的数据 , 如 100L 为十进制长整型常量 , 100L为十六进制长整型常量。 0X100L为十六进制长整型常量。
第3讲
常量、变量与标志符 整型、实型、字符型数据
2.2 常量、变量与标识符 常量、
1. 常量
• 在源程序中明确指明,在程序运行前就知道,而 且在程序运行过程中不会发生变化。 • 常量类型: – 整型常量,如:123、-321、0 整型常量,如:123、 321、 – 实型常量,如:12.3、2.0 实型常量,如:12. – 字符常量,如:’a’、’b’、’7’、’#’ 字符常量,如:’ –符号常量,用一个标识符来代表,其值在其 符号常量,用一个标识符来代表,其值在其 作用域内不能改变,也不能被赋值,一般在程 序中需要多次使用某个常量时使用。
标识符的分类
• C语言的标识符可以分为以下三类。
–关键字 C语言规定的一批标识符,它们在程序中都 代表着固定的含义,不能另作它用。 –预定义标识符 在C语言中也都有特定的含义,允许 另作它用,但这将使这些标识符失去系统规定的原意。 –用户标识符 用户根据需要定义,一般用来给变量、 函数、数组或文件等命名。除要遵循标识符的命名规 则外,还应注意做到“见名知义”,即选择的用户标 识符应具有相关含义,以增加程序的可读性。 –如果用户标识符与关键字相同,程序在编译时将给出 出错信息,如果与预定义标识符相同,系统并不报错, 只是该预定义标识符将失去原定含义,代之以用户确 认的含义,可能会引发一些运行时的错误。
3. 标识符
• C语言中,标识符可以用作变量名、符号名、函 数名和后面将要学到的数组名、文件名以及一些 具有专门含义的名字。 • 合法的标识符只能由字母、数字和下划线等三种 合法的标识符 标识符只能由字母、数字和下划线等三种 字符组成,并且第一个字符必须为字母或下划线。 • 在C语言的标识符中,大写字母和小写字母是两 个不同的字符, • 对于标识符的长度,一般的计算机系统规定取前 8个字符有效,如果长于8个字符,多余的字符 个字符有效,如果长于8 将不被识别。有些系统允许取较长的名字,读者 在取名时应当了解所用系统的具体规定。
补码转换成原码
如果要把内存中以补码形式存放的二进制数转换成十进制 的整数,也要先将其补码转换成原码 转换方法同上, 补码转换成原码, 的整数,也要先将其补码转换成原码,转换方法同上,然后 再将原码转换成十进制的整数。 再将原码转换成十进制的整数。 的补码为:1111111111111011,将其数值位按位取反, 如-5的补码为:1111111111111011,将其数值位按位取反, 得到的结果为1000000000000100 再将其数值位加上1 1000000000000100, 得到的结果为 1000000000000100 , 再将其数值位加上 1 , 即 得到- 的原码为:1000000000000101。 得到-5的原码为:1000000000000101。 由以上分析可知,由两个字节存放的最小整数是 1000000000000000,它的十进制数为-32768; 1000000000000000,它的十进制数为-32768;而-1的二进制 码为1111111111111111 最大整数是0111111111111111 1111111111111111; 0111111111111111, 码为1111111111111111;最大整数是0111111111111111,它 的十进制数为32767 读者可按以上步骤进行换算。 32767。 的十进制数为32767。读者可按以上步骤进行换算。 无符号的整数, 对于无符号的整数 其中的最高位不再用来表示符号, 对于无符号的整数,其中的最高位不再用来表示符号,16 个二进制位全部用来存放数值,当其16 16个二进制位中全部都 个二进制位全部用来存放数值,当其16个二进制位中全部都 其对应的十进制数值为0 当其16 16个二进制位中全部 是0时,其对应的十进制数值为0;当其16个二进制位中全部 都是1 其对应的十进制数值为65535 65535。 都是1时,其对应的十进制数值为65535。
3. 整型数据分类
类型
基本整型 短整型 长整型
类型名

符号 类型
最高位 最高位 最高位 无符号 整型 无符号 短整型 无符号 长整型
类型名
unsigned int unsigned short
符号
无 无
unsigned long 无
2. 变量
• 在程序运行过程中其值可以在一定范围内变化 • 在计算机的内存中占据一定的存储单元,在相应 的存储单元中存放着变量的值。 • 变量名:用来标识一个变量的标识符,也就是变 变量名:用来标识一个变量的标识符,也就是变 量的名字。习惯上变量名用小写字母表示,以增 加其直观性和可读性。 • 变量值:变量的值,即在变量的存储单元中存放 变量值:变量的值,即在变量的存储单元中存放 的数值。 • C语言规定在程序中所有要用到的变量在使用前 必须先指定其类型,称为变量定义或变量说明。
C语言中各种整型数据的长度及取值范围 表2.1 C语言中各种整型数据的长度及取值范围
4.整型数据在内存中的存储形式
在计算机中, 在计算机中,每一种数据类型的数据位数都是固定不变 所以每一种数据类型都有它的取值范围, 的,所以每一种数据类型都有它的取值范围,在进行算术 运算的过程中,如果运算结果超出了它的取值范围, 运算的过程中,如果运算结果超出了它的取值范围,就会 溢出。 得到一个错误的运算结果,这种情况称为溢出 得到一个错误的运算结果,这种情况称为溢出。 标准C语言的基本整型的数据都是十六位的, 标准 C语言的基本整型的数据都是十六位的,其中的最 高位(即最左边的一位)用来存放整数的符号,若是正整数, 高位(即最左边的一位)用来存放整数的符号,若是正整数, 最高位为0 若是负整数,最高位为1 因此, 最高位为0,若是负整数,最高位为1。因此,从最高位就 立刻能判别出存储器中存放的一个整数是正整数还是负整 数。 例如整数5,其在内存中的二进制码为: 000000000000101。 0000000000000101。 正整数的这种存储形式,称为“原码形式”的机器数。 正整数的这种存储形式,称为“原码形式”的机器数。
计算机中的数都是用补码表示的 所谓原码是指一个数的最高位为符号位 所谓原码是指一个数的最高位为符号位,其余的数位均 原码是指一个数的最高位为符号位, 为数值位,数值位的值即为该数所对应的二进制数的值。 为数值位,数值位的值即为该数所对应的二进制数的值。 如十进制数+ 的原码为 000000000000101; 如十进制数+5的原码为:0000000000000101; 十进制数- 的原码为 000000000000101。 十进制数-5的原码为:1000000000000101。 补码表示的机器数 计算机中的数都是用补码表示的机器数。一个正数的补 计算机中的数都是用补码表示的机器数。一个正数的补 和其原码的形式完全相同;而一个负数的补码 负数的补码也是在其 码和其原码的形式完全相同;而一个负数的补码也是在其 原码的基础上转换出来的。转换方法分两步进行: 原码的基础上转换出来的。转换方法分两步进行: 将负数的原码中的数值位按位取反, (1) 将负数的原码中的数值位按位取反,得到该数的反 取反操作就是把1转换成0 转换成1 码。取反操作就是把1转换成0,把0转换成1。如-5的反码 1111111111111010。 为:1111111111111010。 在所求得的反码的数值部分的最低位再加上1 (2) 在所求得的反码的数值部分的最低位再加上1,即 得到该数的补码。 得到该数的补码。 如-5的补码为:1111111111111011。 的补码为:1111111111111011。
相关文档
最新文档