2.2 整型数据_第1页
2.2 整型数据_第2页
2.2 整型数据_第3页
2.2 整型数据_第4页
2.2 整型数据_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Teacher teaching designCONTENTS 目 录提出问题 引入新课整型常量明确考点 交流提升案例分析 仿真演练提出问题 引入新课PART 01提出问题 引入新课1、下列定义符号常量其格式正确的是( )A)#define PI=3.1415926 B)#define PI 10;C)#define PI 10 D)#define PI 2、在下列C语言程序中可以用作变量名的是( )A)1a B)a1 C)int D)*p3、下面符合C语言定义变量的格式是( )A) int a:=b; B)int a=b=c=2; C) int 18.5%3; D)int a=2,b=2,c

2、=2;4、C语言中定义了一个变量,该变量代表内存中的一个( )A)区域 B)单元 C)地址 D)容量5、以下选项中合法的用户标识符是( )A) int B) a# C) 5mem D) _243整型常量PART 02整型常量考点一、整型常量的表示方法整型常量就是整型常数。语言中,整型常数有八进制、十六进制和十进制三种。1、十进制整常数:十进制整型常数没有前缀。其数码为09。以下各数是合法的十进制整型常数:237、-568、65535、1627;以下各数不是合法的十进制整常数:023 (不能有前导0)、23D (含有非十进制数码)。在程序中是根据前缀来区分各种进制数的。因此在书写常数时不要把前缀

3、弄错造成结果不正确。2、八进制整常数:八进制整常数必须以0开头,即以0作为八进制数的前缀。数码取值为07。八进制数通常是无符号数。以下各数是合法的八进制数:015(十进制为13)、0101(十进制为65)、0177777(十进制为65535);以下各数不是合法的八进制数:256(无前缀0)、03A2(包含了非八进制数码)、-0127(出现了负号)。3、十六进制整常数:前缀为0X或0 x。其数码取值为09,AF或af。以下各数是合法的十六进制整常数:0X2A(十进制为42)、0XA0 (十进制为160)、0XFFFF (十进制为65535);以下各数不是合法的十六进制整常数:5A (无前缀0X)

4、、0X3H (含有非十六进制数码)。整型常量考点二:整型常数的后缀在16位字长的机器上,基本整型的长度也为16位,因此表示的数的范围也是有限定的。十进制无符号整常数的范围为065535,有符号数为-32768+32767。八进制无符号数的表示范围为00177777。十六进制无符号数的表示范围为0X00XFFFF或0 x00 xFFFF。如果使用的数超过了上述范围,就必须用长整型数来表示。长整型数是用后缀“L”或“l”来表示的。例如:十进制长整常数:158L (十进制为158)、358000L (十进制为358000);八进制长整常数:012L (十进制为10)、077L (十进制为63)、02

5、00000L (十进制为65536);十六进制长整常数:0X15L (十进制为21)、0XA5L (十进制为165)、0X10000L (十进制为65536)。长整数158L和基本整常数158 在数值上并无区别。但对158L,因为是长整型量,编译系统将为它分配4个字节存储空间。而对158,因为是基本整型,只分配2 个字节的存储空间。因此在运算和输出格式上要予以注意,避免出错。无符号数也可用后缀表示,整型常数的无符号数的后缀为“U”或“u”。例如:358u,0 x38Au,235Lu均为无符号数。前缀,后缀可同时使用以表示各种类型的数。如0XA5LU表示十六进制无符号长整数A5,其十进制为165

6、。整型常量考点三、整型数据在内存中的存放形式1、在计算机中,为了方便计算,数值是以补码形式存储的。正数的补码和原码相同;负数的补码:将该数的绝对值的二进制形式按位取反再加1。2、原码、反码、补码的求解方法原码 由于计算机中只能存储无符号二进制数,为了存储有符号数便规定,对于有符号数的存储最高位是符号位。例如整数-12转换为原码为10000000 00001100。反码 对数的原码除符号位外,其余按位取反,例如-12的反码为11111111 11110011。补码 数的反码加1。例如-12的反码为11111111 11110100例如:求-18的补码:-18的原码:10000000 000100

7、10-18的反码:111111111 11101101 再加1,得-18的补码:111111111 11101110可以看出,左面的第一位是表示符号的。整型常量考点四、整型变量的种类及对应的格式控制符整型变量的分类基本型:类型说明符为int,在内存中占2个字节。短整量:类型说明符为short int或short。所占字节和取值范围均与基本型相同。长整型:类型说明符为long int或long,在内存中占4个字节。无符号型:类型说明符为unsigned。无符号型又可与上述三种类型匹配而构成:无符号基本型:类型说明符为unsigned int或unsigned。无符号短整型:类型说明符为unsig

8、ned short。无符号长整型:类型说明符为unsigned long。各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同。但由于省去了符号位,故不能表示负数。有符号整型变量:最大表示32767无符号整型变量:最大表示6553501111111111111111111111111111111整型常量下表列出了Turbo C中各类整型量所分配的内存字节数及数的表示范围类型说明符数的范围字节数格式符int-3276832767 即-215(215-1)2%dunsigned int065535 即0(216-1)2%ushort int-3276832767 即-215(215-1)2

9、%dunsigned short int065535 即0(216-1)2%ulong int-21474836482147483647即-231(231-1)4%ldunsigned long04294967295 即0(232-1)4%lu说明:在输入或输出数据时,不同的整型数据对应的格式控制符不同,基本整型和短整型的格式控制符是%d,长整型的格式控制符是%ld,无符号整型的格式控制符是%u。整型常量 例如:整数13在各种整型类型变量中的存储情况:int型: short int型: long int型: unsigned int型: unsigned short int型: unsigne

10、d long int型: 00000000000011010000000000001101000000000000000000000000000011010000000000001101000000000000110100000000000000000000000000001101整型常量 考点五、整型变量的定义变量定义的一般形式为:类型说明符 变量名标识符,变量名标识符,.;例如:int a,b,c; (a,b,c为整型变量)long x,y; (x,y为长整型变量)unsigned p,q; (p,q为无符号整型变量)在书写变量定义时,应注意以下几点:1、允许在一个类型说明符后,定义多个相

11、同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。2、最后一个变量名之后必须以“;”号结尾。3、变量定义必须放在变量使用之前。一般放在函数体的开头部分。明确考点 交流提升PART 03明确考点 交流提升程序结果为:x=32764,y=-32767因为32767是整型数据可以表示数值的上限,加5后符号位为1,其余各位如图所示,成为-32767的补码。x=3276401111111 11111100-327671000000000000001分析:结果为什么是32767?【例1】整型变量的定义与使用。main() int a,b,c,d; unsigned u; a=

12、12;b=-24;u=10; c=a+u;d=b+u; printf(“a+u=%d,b+u=%dn”,c,d);【例2】整型数据的溢出main() int x,y; x=32764; y=a+5; /*整数y溢出*/ printf(x=%d,y=%dn,x,y);明确考点 交流提升【例3】无符号整型数据的溢出。main() int a,b; a=65535; b=a+100; printf(a=%u,b=%un,a,b); 程序运行的结果为:a=65535,b=99思考题:自行分析结果产生的原因?仿真演练 体验探索PART 04仿真演练 体验探索1、下面四个选项中均是不合法整型常量的选项是(

13、 )A)160 -0 xffff 011 B)-0 xcdf 01a 0 xeC)-06 986,012 0668 D)-0 x48a 2e5 0 xk2、下列不合法的十六进制数是( )A)oxff B)0Xcde C)0 x11 D)0 x233、以下选项中可作为C语言合法整数的是( )A) 10110B B) 0386 C) 0Xffa D) x2a24、在C语言中,数值在计算机中的存储形式是( ) A)补码 B)反码 C)原码 D)ASCII码5、在C语言中,数字029是一个( )。A)八进制数 B)十六进制数 C)十进制数 D)非法数仿真演练 体验探索6、分析程序写结果:#includ

14、emain( ) int a,b;a=32767;b=a+1;printf(%d,%d,a,b); 程序运行结果为:7、 若int类型数据占两个字节,则下列语句的输出结果为( )int k=-1; printf(%d,%u,k,k);A)-1,-1 B)-1,32767 C)-1,32768 D)-1,65535说明:考查C语言对有符号和无符号整型数据的处理,区别在于对数据最高位的解释上。对于一个有符号整数,C编译程序将把该值(二进制代码)的最高位作为符号标志位(符号标志位是0,表示正数;若为1,表示负数);而对于一个无符号整数,该数的最高位将被作为数值位处理。设int 型数据占两个字符,则-1在内存中应以16位全1来表示,因此当把k值按%d格式输出(即按有符号数处理)时,仍为-1;而按%u格式输出(即按无符号数处理时),为65535(2的16次方减1)仿真演练 体验探索8、数字字符0的ASCII值为48,若

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论