Lesson-2数据类型.ppt
《Lesson-2数据类型.ppt》由会员分享,可在线阅读,更多相关《Lesson-2数据类型.ppt(32页珍藏版)》请在三一文库上搜索。
1、C语言程序设计 第二章 数据类型,众嵌科技,知识要点,2.1 C语言的数据类型 2.2 常量与变量 2.3 整型数据 2.4 实型数据 2.5 字符数据 2.6 变量的定义与赋值 2.7 C语言类型修饰符 2.8 数据类型转换,2.1 C语言的数据类型,什么是数据类型? 就像对自然界中的动物,为了对它们进行区分,在动物学上我们把狗、狼归为犬科动物,猫、虎、豹归为猫科动物一样,为了区分不同类型的数据,在计算机领域也有一套标准来区分各种数据,用这种区分方法得到的数据类别就是数据类型。例如:我们可以把带小数的数归为一类(0.2、8.7、1.12、-3.22),称为小数类型;把不带小数的数又归为一类(
2、 1、2、3、-5、0 ),称为整数类型;那么小数类型和整数类型都被称为数据类型。,2.1 C语言的数据类型,C语言数据类型的分类,基本类型,整 型,实 型,字符型,枚举类型,构造类型,数组类型,结构体类型,共用体类型,指针类型,空类型,C语言数据类型,2.2 常量与变量,量 程序在运行过程中,所有与程序运行相关的数据都存储在内存单元中,这些存储着数据的内存单元我们称为量。为了便于理解,我们会为量定义一个易于理解的名字,称为量名。量在程序设计中有两种,一种是常量,另一种是变量。 常量 在程序运行过程中,其值不能被改变的量称为常量。 变量 在程序运行过程中,其值可以被改变的量称为变量。,2.2
3、常量与变量,思考:常量与变量在程序设计中的作用是什么? 变量的作用: 就像我们做算术题时,需要草稿纸一样,变量是电脑进行程序运算时存储临时运算结果的地方,没有变量电脑将不能进行任何稍微复杂一点的运算。 常量的作用: 常量是为了方便程序员维护程序而设计的,有些特殊的数值(如3.1415926)在程序里可能多处重复出现,为了避免程序员重复输入产生错误,一般会建立一个常量令它的值等于我们希望的这个数值,来降低代码出错可能。另外,当我们期望改变这个特殊值的时候,只要改变这个常量的值就可以了,而不必改变所有引用这个值的地方。,2.3 整型数据,什么是整型数据? 整型数据等同于数学上的整数,凡是不带小数的
4、数我们都归于这一类,如1001、23、0、-244、-332等等。 C语言中整型数据的表现形式 我们日常经常接触到的一类整数表现形式是十进制,这种表现形式的特点就是逢十向前进一位;除此以外电脑中还有类似的几种表现形式,如二进制(逢二向前进一位),八进制(逢八向前进一位),十六进制(逢十六向前进一位),在这些进制表现方式中,都有一个特点,那就是对于N进制而言,它每一位上的数值必定不能大于N-1,如十进制每一位最大为9,二进制最大为1,八进制最大为7,十六进制最大为15。,例2.1 整型数据20的各种表现形式:,20 20,2,0,1、十进制:20,2、二进制:10100b,3、八进制:024,4
5、、十六进制:0x14,注:C语言中规定在数据后面加b表示这个数是二进制数;在数值前加0表示是八进制数;在数值前加0x表示是十六进制数。,10 5 2 2 20 2 10 2 5 2 2 20 10 4 2,0,0,1,0,1,8 20 16,2,4,16 20 16,1,4,十六进制表示法: 为了在书写上不与其它进制表示法产生混淆,十六进制借用字符AF来表示数值1015。 十进制: 十六进制:,0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16,0 1 2 3 4 5 6 7 8 9 A B C D E F 10,思考 现实世界还存在哪种进制表示法为了避免与其它进
6、制表示法混淆而采用了特殊的表示方法?,答案 时间。现实世界的时间是使用的六十进制来表示的,如下午3点半的表示方法就是15:30,这种用“:”号区分小时和分钟的表示法就是时钟特有的表达方式,如果没有“:”号放在当中区分,那么15:30表示的意思就会和十进制1530无法区分开来。,2.3 整型数据,字节的概念 早期的电脑只能存储整型数据,而且只能已二进制方式存储和表达数据。因为每个二进制位只有两种取值可能(要么是1,要么是0),所以早期的存储介质如卡带机就可以通过往纸带对应位置打孔表示1,不打孔表示0的方式来存储信息。对于内存而言,存储方式类似,只是判断0、1的条件由打孔变成了是否有电信号了。正是
7、因为这个特点,所以电脑里存储单元都是以二进制位为单位来衡量的,我们通常所说的字节就表示8个二进制位,可以表示0, 255的数值范围。,13: 1 0 1 1,8个存储单元为一个字节,0 1 0 0 1 0 1 0,字节存储单元,2.3 整型数据,根据存储单元大小不同,C语言整型数据分为以下几种: 字符型char(占用一个字节单元,表示范围0,255) 短整型short(在16位操作系统下,占用1个字节单元,表示范围0,255;在32位操作系统下,占用2个字节单元,表示范围0, 216-1) 整型int(在16位操作系统下,占用2个字节单元,表示范围0, 216-1;在32位操作系统下,占用4个
8、字节单元,表示范围0, 232-1),2.3 整型数据,长整型long(占用4个字节单位,表示范围0,232-1) 缺省约定:如果整数后面跟一个字母L,则表示这个数是一个长整型long,否则缺省默认为整型int。如300L就表示一个长整型数据300。 补码 前面所说的整数都没有讨论其负数的情况,负数在电脑中如何存储的呢?其实负数在电脑中也和正整数一样存储,不过需要预先编码一下,这种编码方式我们称为补码。,补码 整数-27的char型数据补码计算过程如下: 27 二进制化 逐个二进制位取反 结果加1即得补码 所以整数-27的char型数据补码的二进制表示是11100101,换算成十进制就是229
9、。小经验:负数最高二进制位总是1,正数最高二进制位总是0。,2.3 整型数据,有符号整型数据的存储方式 有符号整型数据的存储分为两种情况: 正数直接以二进制方式存储; 负数首先将其转换成补码后再存储。 所以,对于一个整型数据,若其最高二进制位为1则表示这个整型数据是负数,否则是零或者是正数,那么当这个整型数据可表示的无符号范围是0, N的时候,那么它的有符号存储范围就是 -(N+1)/2, (N+1)/2-1 因为0,N的区间大小是(N+1),它的一半空间用来存负数,另一半空间用来存正数和零,所以它的有符号区间应当是负数范围-(N+1)/2, 0)和非负数范围0, (N+1)/2-1的合集。,
10、补充 C语言中几种整型数据有符号和无符号数存储范围对比(以32位操作系统为例):,2.4 实型数据,C语言使用实型数据类型来描述小数 根据存储空间的不同,C语言中的实型数据主要分为以下几种: float:单精度浮点数,可以精确到小数点后67位,占用4个字节存储; double:双精度浮点数,可以精确到小数点后1617位,占用8个字节存储。 实型数据在电脑中主要以两种方式来表示 小数方式表示:如3.1214、0.521、-112.42; 指数方式表示:如7.819E3、-1.33E10、2.44E-1; 注:在C语言中,3.4f表示这个数值是float型单精度浮点数;而3.4表示这个数值是dou
11、ble型双精度浮点数值。,2.5 字符数据,什么是字符数据? 字符数据指那些构成文本信息的数据,如英文字母、阿拉伯数字、标点符号等等,这类数据主要是用来和人沟通交流用的,如果仅仅只有前面提到的纯数字数据,那么人机交流会存在很大障碍,呈现在电脑前的只有一串串数字而非人们可以理解的文本信息。 字符数据的表现方式: 单个字符以单引号括起来,如1、a、#等等,但是对于汉字来说,因为每个汉字由两个字符构成的,所以不能用这种方法来表示;,2.5 字符数据,一串字符用双引号括起来,如“abc”、“123”、“hello”等等,我们把这一串串表示的字符称为字符串。字符串末尾都会有一个字符0来表示字符串的结束,
12、这里的字符0在单引号内虽然有两个字符,但是它表示的是一个转义后的特殊字符,并不是字符0。 不论是在字符或字符串中,都有一个特殊的字符,在C语言里称它为转移符。它从不单独出现,总是和其它字符一起构成一个单独的字符,如n(换行符)、()、()、”(”)等等。如果符号后跟的是数字,那么这个数字必然是八进制的,而且这个后的字符的ASCII码就是这个值,如字符A的ASCII码是65,那么字符101表示的和A是相同的,都是字符A。 单个字符在内存中只占用1个字节,其存储的内容为该字符在ASCII码表中对应的数值。 思考:a “a” 是相同的吗?,2.6 变量的定义和赋值,C语言中的数据有两种基本形式:常量
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Lesson 数据类型
链接地址:https://www.31doc.com/p-2202074.html