《高级语言程序设计》课件第2章基本数据类型.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《高级语言程序设计》课件第2章基本数据类型.pptx》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级语言程序设计 高级语言程序设计课件第2章 基本数据类型 高级 语言程序设计 课件 基本 数据类型
- 资源描述:
-
1、第2章 基本数据类型2.1 整型数据2.2 字符型数据2.3 浮点型数据2.4 格式化的输入与输出第2章 基本数据类型2.1 整 型 数 据第2章 基本数据类型2.1.1 整型数据的进制整型数据,顾名思义,即是没有小数点部分的整数数据。整型数据以二进制补码的形式在内存中存储。整型常量即整型常数,可正可负。在C语言中,整型常量有三种形式,即八进制整数、十进制整数和十六进制整数。十进制的计数规则为逢10进1,基本数字为 0、1、2、3、4、5、6、7、8、9。十进制数的每一位都是10的指数幂。八进制的计数规则为逢8进1,基本数字为 0、1、2、3、4、5、6、7。在C语言中,八进制整数的表示以0开
2、头,如0367表示八进制数367。八进制数的每一位都是8的指数幂,因此可以转化为十进制数。同理,十进制数也可以转换为八进制数,其规则为该十进制数除以8,求得商和余数,并继续用商除以8,直到商比8小为止。如十进制数247除以8等于30余7,30大于8,所以继续;30除以8等于3余6,3比8小,因此将所剩的余数按自下而上的顺序排列即得八进制数367。该计算过程用图2-2方法表示则更清晰。第2章 基本数据类型十六进制的计数规则为逢16进1,基本数字包括0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。在C语言中,十六进制的整数以0 x或者0X开头,如0 x367,0X1AF2。十六进制
3、整数与十进制整数之间也可以相互转换,其方法与八进制整数和十进制整数之间的转换一样。而将十进制整数871转换为十六进制,参考图2-2可得图2-3,即得到十六进制数0 x367。十六进制整数与八进制整数之间也可以相互转换,可以通过十进制作为中间转换数制,即将十六进制数先转换为十进制数,再将十进制数转换为八进制数。二进制是计算技术中广泛采用的一种数制。二进制使用0和1两个数码来表示数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,是由18世纪德国数理哲学大师莱布尼兹(Leibniz)发明的。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以二进制补码的形式存储。设计补码
4、的目的是简化运算规则。所谓补码的概念,主要是针对负数而言的。对于一个正数来说,原码、反码及补码是一样的。而对于负数来说,其补码等于其绝对值按位取反再加1。二进制数向八进制数或十六进制数的转换十分方便。由二进制数到八进制数,只需从右向左,取三位合一位,不够三位的第2章 基本数据类型前面补0,如图2-4所示。同理由二进制数转换到十六进制数,只需从右向左,取四位合一位,不够四位的前面补0。而八进制数、十六进制数向二进制数的转换,仅需对应地将每一位用三位或四位二进制数表示即可。2.1.2 整型变量整型变量的基本类型符为int(英文integer的缩写),在整型的表示符号int之前,分别加上不同的修饰符
5、,便可以扩展整型的类型为基本整型:int。短整型:short int,可简写为short。长整型:long int,可简写为long。双长整型:long long int,可简写为long long。第2章 基本数据类型在数学上,整数可以是正数或负数。整型数据的正、负之分,在C语言中是用有符号数与无符号数的概念来定义的。如果预先知道某变量要处理的数据不会有负数存在,这时候就可以使用无符号类型。无符号和有符号类型的区分是由类型符int前的修饰符所定义的,通过有符号(signed)和无符号(unsigned)两个修饰符来表示。如果没有加修饰符,则默认为有符号(signed)。由于数据在内存中的存储
6、占用一定的空间(字节数),因此数据就有相应的取值范围。C语言本身并没有明确规定各类型数据占多少字节,仅保证了short类型不比int长,而long类型不会比int短。早期C语言这种规定的目的是适应不同的机器。在计算机中,数据使用二进制表示,即0或1,每一位(bit)就代表了一个0或者1。每8个位组成一个字节(byte),字节是数据存储的单位。例如,在C语言的数据类型中,通常把short定义为2个字节,即16位。虽然C语言本身没有规定各种数据类型所占字节数,但是C语言标准中提出了将相关的数值取值范围的限制定义在头文件limits.h、float.h、stdint.h中。因此如果我们要确定某一数据
7、类型所占字节数,可以通过查阅这几个文件或者通过sizeof()函数来确定数据类型的字节数。各种数据类型所占字节数和取值范围与编译器如何实现C语言标准有很大关系,本书列出Dev-C+中的整型数据的取值范围,如表2-1所示。在确定了编译系统的各数据类型的取值范围之后,就可以根据程序对相应数据的需求,来设计变量的类型。比如人的年龄,就可以使用unsigned char类型。由于表2-1的取值范围的存在,在计算过程中,会出现例2.1中超出某数据类型取值范围的状况存在。第2章 基本数据类型第2章 基本数据类型2.1.3 整型常量上一节中提到了整型常量即是整型常数,包括十进制数、八进制数和十六进制数。我们
8、在例2.1中使用到的整数,都可以作为整型常量来使用。整型变量根据所表示数字的范围不同以及正负数的不同,可以有多种扩展类型。由此可知,整型常量也不局限于int类型。C语言标准(C11)中,对于扩展整型常量的表示法,通过添加后缀来实现,如表2-2所示。以一个十进制整数为例,由表2-2可知,如果该整数没有加后缀,则根据其数值所在的范围来确定它的类型。第2章 基本数据类型2.1.4 整数的存储当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以二进制补码的形式存储的。下面以短整型数据的存储为例来介绍计算机内部整型数据的表示。如果有一个短整型变量a:首先我们将其转换为二进制数,有十进制数12
9、3二进制数 1111011二进制补码 1111011那么根据表2-1,短整型short int的数据位数为16位,因此在内存中,该数字存储为整型数据分为有符号数和无符号数。对于无符号数,根据表2-1,unsigned short的数据位数为16位,其取值范围为065535,在内存中的表示如下:0:第2章 基本数据类型65535:对于有符号数,其最左边的一位(称作最高位)表示符号位,如果该位的数字为1,则表示负数;如果为0,则表示非负数(0或正数)。有符号的short int数据同样占据16位的存储空间,其中第一位为符号位,因此数字0只能用15位表示,则有0:最大的正数为32767。如果正数32
10、767+1,则有符号位是1,所以该数字为负数(-32768)。根据前面讲到的负数在计算机中存放的补码是该数的绝对值的原码取反再加1,我们对负数-32768取绝对值,得到32768。其二进制为第2章 基本数据类型对其取反,得再加1,则有所以,根据上述推导过程,我们可以得出当有符号位时,32767+1在计算机中表示为-32768。那么-32767为以此类推,最大的负数为 -1第2章 基本数据类型2.2 字符型数据第2章 基本数据类型2.2.1 字符型变量字符型变量用来存放程序中使用的字符型数据。字符型变量通过关键字char来定义。字符型变量属于整型数据类型的范畴,可以参与运算,也可以使用signe
11、d(有符号)和unsigned(无符号)两个修饰符来修饰。其中,signed可省略,即在没有使用修饰符来定义字符型变量时,则认为是signed char。使用signed或者unsigned定义字符型变量时,二者的取值范围不同。signed char型变量的最高位为符号位,因此仅能存放7位二进制数,取值范围为-128127;使用码值0127表示标准ASCII字符,使用码值-1-128表示扩展的ASCII字符。unsigned char型变量的最高位不是符号位,因此可以存放8位二进制数,取值范围为0255;使用码值0127表示标准ASCII字符,使用码值128255表示扩展的ASCII字符。字符
12、型变量的存储单元长度和取值范围如表2-3所示。第2章 基本数据类型2.2.2 字符型常量正如整型数据一样,字符型数据既可以是变量,也可以是常量。字符型常量是单引号括起来的字符,如a。注意,这里讲的字符是指ASCII和EASCII字符集中的单字节字符。双字节字符(如中文字符),不能定义为字符型常量。C语言中还有一类字符称作转义字符(escape sequence),这类字符是以反斜杠“”开头的字符序列,它包含了如表2-4所示的转义字符。第2章 基本数据类型2.3 浮点型数据第2章 基本数据类型C语言的基本数据类型之一的浮点型数据,用来表示实数。浮点型数据有三种类型,即单精度(float)、双精度
13、(double)和长双精度(long double)。浮点型数据在内存中的存储方式与整数不同,它由三部分构成:由此,导致浮点型数据的精度是不确定的,即浮点数只能近似地表示某个实数,而不是精确地等于某个实数。具体来说,这个实数是由一个整数乘以某个基数(常用2)的整数次幂得到的。在计算机中,数值都是用二进制数字表示的,对于4个字节的单精度浮点数(float)而言,总共有32位,其中符号位占1位,尾数部分占23位,指数部分占8位。从这里也可以看出,尾数部分占的位数越多,表示的浮点数有效数字越多,精度越高;指数部分占的位数越多,则能表示的数值范围越大。因此,我们可以得到单精度浮点数的十进制表示的有效数
展开阅读全文