数据类型与表达式(new).ppt
《数据类型与表达式(new).ppt》由会员分享,可在线阅读,更多相关《数据类型与表达式(new).ppt(52页珍藏版)》请在三一办公上搜索。
1、第2章 数据类型与表达式,C+语言程序设计教程 第2章数据类型与表达式,制作人杨进才 沈显君,C+语言程序设计教程 第1章C+编程简介,第2章 数据类型与表达式,学习目标,掌握各种基本数据类型的定义名、长度、表示范围;掌握各种类型的数值的表示;弄清变量以及变量赋值的实质,标识符的构成规则,会定义各种类型的变量以及定义变量的初值;弄清变量与常量,三种常量之间的区别;掌握常用运算符的含义、优先级、结合性、使用方法;理解表达式的构成规则、表达式的左值和右值的含义,会根据计算式写出相应的表达式;掌握隐式类型转换和显式类型转换的概念和使用方式,能够使用显式类型转换强制进行表达式值的转换。,C+语言程序设
2、计教程 第2章数据类型与表达式,C+语言程序设计教程 第1章C+编程简介,2.1 数据类型概述,C+语言程序设计教程 第2章数据类型与表达式,C+语言程序设计教程 第1章C+编程简介,2.2 基本数据类型,C+语言程序设计教程 第2章数据类型与表达式,2.2.1 字符集,字符集是构成C+程序语句的最小元素。字符集由下列各类字符构成:,(1)英文字母 AZ,az,(2)数字 0-9,(3)特殊字符:,二进制数的编码表示:原码,一个数在机内的表达形式”机器数”,而它代表的数值称为机器数的”真值”。原码 用“0”表示正数,”1“表示负数符号绝对值表示的编码例如:X=+0101011 X原=0 010
3、1011X=-0101011 X原=1 0101011 符号位缺点:零的表示不唯一:+0原=000.0-0原=100.0进行四则运算时,符号位需单独处理,且运算规则复杂。,信息的表示与存储,二进制数的编码表示:反码,正数的反码与原码表示相同。负数的反码与原码有如下关系:符号位相同(仍用1表示),其余各位取反(0变1,1变0)。例如:X=-1100110 X原=11100110 X反=10011001X=+0000000 X原=00000000 X反=00000000反码中零的表示也不唯一X=-0000000 X原=10000000 X反=11111111反码只是求补码的中间码,信息的表示与存储
4、,二进制数的编码表示:补码,计算机中的补码表示法模数:物理意义上的某个计量器的容量。(例如时钟)在模数系统中,一个数减去另外一个数,等于第一个数加上第二个数的补码。8+(-2)=(8+10)mod 12/10是-2在模12下的补码。正数的补码与原码表示相同。负数的补码 可由模数与真值做加法求得 X=-0110 X补=24+(-0110)=1010负数的补码由该数反码的末位加 1 求得(求反+1)X=-0110 X反=1001 X补=X反+1=1010对补码再求补即得到原码 X=-0110 X补=1010 再求补 X补反=1101 X补补=1101+1=1110=X原补码运算规则符号位可作为数值
5、参加运算减法运算可转换为加法运算:加上一个负数等于加上该数的补码67-10=67+(-10)=67补-10补=?补码运算的结果仍为补码(要转换成真值)10-67=?,信息的表示与存储,小数的表示方法,计算机中通常采用浮点方式表示小数一个数 N 用浮点形式表示可以写成:N=M2E E表示2的幂,称为数N的阶码。阶码确定了数N的小数点的位置,其位数反映了该浮点数所表示的数的范围。M表示数N的全部有效数字,称为数N的尾数。其位数反映了数据的精度。介码和补码都是带符号的数。可以用不同的码制表示,尾数常用原码或补码,介码多用补码表示。15 14 1211 10 0 介码 尾数 介符 尾符假设一个16位机
6、,介码4位,尾数12位。,信息的表示与存储,数的表示范围,一个m位整数(包括一个符号位),如果采用原码和反码表示法,能表示最大数2m-1-1.最小数-(2m-1-1).用补码表示能表示最大数2m-1-1.最小数-2m-1.X补=100.00,1既表示符号又表示数值。对应真值-2m-1 例如m=8 原码 反码表示范围-127+127.补码-128+127浮点数表示范围:由介码r位整数(补码)表示,尾数用n位定点小数(原码)表示:,C+语言程序设计教程 第1章C+编程简介,2.2.2 基本数据类型,C+语言程序设计教程 第2章数据类型与表达式,表中符号 表示可选,表示其中的内容可以缺省,也有默认的
7、意思。如signed char表示char类型默认为signed char;使用类型名定义一个变量时,中的内容可以省略。,整型int默认为有符号整型,即:类型signed int与int相同,所以signed short int、signed long int分别与short int、long int相同。,如果int型有长短修饰或符号修饰时,int也可缺省。,符号的类型修饰signed,unsigned与长短的修饰short,long可以随意组合,且前后顺序随意。,整型数据的长度(存储空间)随系统的不同而不同,在16位系统下如DOS,其长度与短整型相同,占有16bit。在32位系统如Linu
8、x、Unix、Windows NT系统下,长度为32bit。表中的整型是32位系统下的整型。,有效位数栏中的数据是指浮点数十进制的有效位数,包括整数与小数部分。,空值型void用于描述没有返回值的函数以及通用指针类型。,有的编译器如visual C+对long double采用8字节存储。,C+中提供wchar_t类型,用于描述像汉字这样的大字符集。汉字字符集有简体字符集GB2312、繁体字符集Big5。在C+中,对于大字符集字符可用多个char类型的数据来实现,wchar_t类型主要用在国际化程序的实现中。,C+语言程序设计教程 第1章C+编程简介,2.3 数值,C+语言程序设计教程 第2章
9、数据类型与表达式,数值就是指直接参加运算的数。在有的书上称为文字常量(literal constant)或常量。文字是程序中直接用符号表示的数值,常量是指在程序运行过程中,其值不能被改变的量。出现在程序中的数值在程序运行过程中是不能被改变的,故称之为文字常量。通俗说,文字常量就是数值。,2.3.1 整型数,各种进制的整数表示如下:,C+语言程序设计教程 第1章C+编程简介,C+语言程序设计教程 第2章数据类型与表达式,以0 x或0X开头,数字有0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。其中英文字母AF代表的值为1015。如:0 x12B表示十六进制数(12B)16,其值为
10、:1162+2161+11160,等于十进制数299。-0 x17等于十进制数-23。十六进制使用的英文字母除了使用大写字母外还可以使用a、b、c、d、e、f小写字母,并且大小写可以混用。,(3)十六进制整数,注意:各进制数只能使用其规定的数字,进制使用的数字为0N-1。如0128是不合法的八进制数,因为8不是八进制所使用的数字。八进制整数前不能省略0,省略了0就是十进制数。,各种类型整数的表示,(1)基本整型数,基本整型数不需要在数字后加任何后缀。在16位系统下,整型数的长度为16bit(2字节)如:12、-1235等是用十进制表示的整型数。如0 xc、0 xfb2d是用十六进制表示的整型数
11、,其值分别为12、-1235。在32位系统下,长度为32bit(4字节),如:12、-1235等。12、-1235用十六进制表示分别为0 xc、0 xfffffb2d。,C+语言程序设计教程 第1章C+编程简介,C+语言程序设计教程 第2章数据类型与表达式,长整型的长度与取值范围与32位系统下的基本整型一样。表示方法则是在数字后加l或L做标记。如:345667L、-123L、12l。,(2)长整型数,注意:为了区别表示长整型数字母l与数字1,一般使用大写L;在定义一个整型数时,不管采用哪种进制形式,都不要超过其表示范围。,C+语言程序设计教程 第1章C+编程简介,C+语言程序设计教程 第2章数
12、据类型与表达式,(1)十进制数形式,由09和小数点组成。如:23.456、-12.3等。,(2)指数形式,表示格式为:,2.3.2 浮点型数,浮点型数即我们平常使用的实型数,由整数部分和小数部分组成。通常有两种表示形式:,十进制浮点型数基本整型数1 E 基本整型数2,符号|表示“或”。,十进制浮点型数与基本整型数1是尾数;,E或e代表底数10;,基本整型数2为指数。如:1.3e4、-12.5e-4分别表示1.3104和-12.510-4。,注意:当以指数形式表示一个实数时,整数部分和小数部分可以省略其一,但不能都省略。如.123E5、123.E-6都是正确的,但不能写成E-2这种形式。浮点数默
13、认为双精度浮点型,在内存中占8个字节,取值范围为1.7e308。如果带有后缀F或f,则为float类型,在内存中占4个字节,取值范围为3.4e38,C+语言程序设计教程 第1章C+编程简介,C+语言程序设计教程 第2章数据类型与表达式,转义符形式1:,2.3.3 字符型数,字符数是用英文单引号括起来的一个字符。如:a,A等。,字符助记符,有些ASCII码字符如回车、退格等不能直接用在用单引号中。这些数据可用转义序列来表示:,转义符形式2:,字符助记符只有一个字母,例如n、t分别为newline(换行符)、table(制表符)的助记符。故n、t分别表示换行符与制表符。,字符的ASCII码值,字符
14、的ASCII码值的形式为ooo与xhh,其中ooo表示3位八进制数,xhh表示2位十六进制数。例如,制表符table用第2种形式的转义序列表示为011或x09。ooo中,ooo为不超过3位的八进制数字,可以不以0开头。,C+语言程序设计教程 第1章C+编程简介,常用预定义的转义序列,C+语言程序设计教程 第1章C+编程简介,转义序列的用法举例,A;B;C;D;E;F;屯屯,注意:由于一个汉字字符包括两个字符,因此不能在单引号中使用汉字。,C+语言程序设计教程 第1章C+编程简介,C+语言程序设计教程 第2章数据类型与表达式,This is a stringn,字符串与字符比较的区别:,2.3.
15、4 字符串,字符串数值简称字符串,是使用一对双引号括起来的字符序列。例如,英文串:,中文串:我们都是中国人t我们热爱自己的祖国n,(1)字符由单引号括起来,字符串由双引号括起来。如:a与a分别表示a字符与a这个字符串。(2)字符只能是单个字符,字符串则可是零个或多个字符。如:abd是不合法的。但是合法的,表示空串。(3)字符占一个字节的内存空间,字符串占内存字节数等于字符串的长度加1。系统自动在字符串末尾添加0作为结束标记。如:a在内存中占用一个字节;而a 在内存中占用两个字节,分别存放a和0。,2.3.5 布尔型数,布尔型数值只有两个:true(真)和false(假)。在C+的算术运算式中,
16、把布尔型数据当作整型数据,true与false分别当作1与0。在逻辑运算式中则把非0数据当成true,把0当成false。,注意:不能将true与false写成TRUE与FALSE。,C+语言程序设计教程 第1章C+编程简介,2.4 变量,C+语言程序设计教程 第2章数据类型与表达式,变量是存储数据的内存区域,变量名是这块区域的名字或助记符。变量之所以叫变量是因为在程序运行的过程中变量标识的内存区中的数据可以改变。在C+中变量取名要遵循标识符的构成规则。,2.4.1 标识符与关键字,标识符用来标识程序中的一些实体(变量名称、常量名称、函数名称)。标识符的构成规则如下:,(1)以大写字母、小写字
17、母或下划线_开头;,(2)可以由大写字母、小写字母、下划线、数字组成;,(3)大写字母与小写字母分别代表不同的标识符;,(4)不能是C+的关键字。,C+的关键字是C+预定义的单词,也叫保留字,意思是为C+语言保留,不能用作标识符。,C+语言程序设计教程 第1章C+编程简介,C+语言程序设计教程 第2章数据类型与表达式,C+的关键字表,C+语言程序设计教程 第1章C+编程简介,C+语言程序设计教程 第2章数据类型与表达式,变量定义的一般格式为:,例如:int sum,area;float x,y,z;,给变量赋初值的格式如下:,2.4.2 变量的定义与赋初值,数据类型 变量名1,变量名2,变量名
18、n;,数据类型 变量名1=初值1,变量名2=初值2,变量名n=初值n;,例如:int sum=100;double pi=3.1416;char c1=a,c2=b;,C+语言程序设计教程 第1章C+编程简介,C+语言程序设计教程 第2章数据类型与表达式,变量定义的l另一种格式为:,例如:int sum(100);double pi(3.1416);char c1(a),c2(b);,数据类型 变量名1(初值1),变量名2(初值2),变量名n(初值n);,2.5 常量,常量是指在程序运行过程中,其值不能被改变的量。因此,一个具体的数值称为文字常量。如:i=255;area=r*r*3.14;,
19、在程序中直接使用数值有两个问题:,(1)可读性差;,(2)可维护性差;,C+语言程序设计教程 第1章C+编程简介,C+语言程序设计教程 第2章数据类型与表达式,C+符号常量的定义形式(宏定义,预处理阶段替换)如下:,例如:#define MaxChar 255#define PI 3.14,2.5.1 符号常量,#define 符号常量名 数值,注意:定义符号常量时不能用赋值符,#define PI=3.14是错误的。由于define 是预处理指令,语句不能以分号结尾。,C+为符号常量提供了一种新方法,格式为:,2.5.2 常变量,const 数据类型 符号常量名=数值;,const可以与数据
20、类型说明颠倒。,用const修饰后,变量的值就不能改变了,实质上是一种“常变量”。,C+语言程序设计教程 第1章C+编程简介,C+语言程序设计教程 第2章数据类型与表达式,例如:const short int MaxChar=255;const float PI=3.14;,三种常量比较表:,与直接使用文字常量相比,使用符号常量增强了程序的可读性,可维护性。,常变量与变量定义的格式相似,使程序保持良好的风格。,常变量可以按照不同的需要选择合适的数据类型,节省内存空间,在运算式中有明确的类型。,注意:在定义常变量时一定要赋初值。例如:const float PI;/错误,定义时没有给出初值 常变
21、量不是变量,在程序中间不能更新其值。例如:PI=3.14159;/错误!常量不能被改变,C+语言程序设计教程 第1章C+编程简介,C+语言程序设计教程 第2章数据类型与表达式,运算符是描述对数据进行的运算(操作)、体现数据之间运算关系的符号,运算符也叫操作符。表达式是运算符与数据连接起来的表达运算的式子,表达式也称运算式。,优先级是指表达式中运算符运算的顺序。当一个表达式中包含多个运算符时,先进行优先级高的运算,再进行优先级低的运算。如果表达式中出现了多个相同优先级的运算,运算顺序就要看运算符的结合性了。结合性是指操作数左右两边运算符的优先级相同时,优先和哪个运算符结合起来,进行运算。运算符的
22、结合顺序有两种:左结合和右结合。,2.6.1 优先级与结合性,左结合,num1 op1 num2 op2 num3(num1 op1 num2)op2 num3,右结合,num1 op1 num2 op2 num3 num1 op1(num2 op2 num3),2.6 运算符与表达式,C+语言程序设计教程 第1章C+编程简介,C+语言程序设计教程 第2章数据类型与表达式,基本算术运算符及其含义:,表中优先级数字小的优先级高,(1)算术运算符的意义、优先级与数学中一致:+(正号),-(负号)是一元运算,优先级高于二元运算,*、/、%优先级高于+(加)、-(减)运算。,例如:a=10;b=5;a
23、+b*-1;得到结果5,(2)%要求两个操作数的值必须是整数或字符型数。“操作数1%操作数2”计算结果是操作数1被操作数2除的余数。当两个操作数都是正数时,结果为正;如果有一个(或两个)操作数为负,余数的符号取决于机器。,21%6/结果是34%2/结果是021%-5/机器相关:结果为-1或1,2.6.2 算术运算符,C+语言程序设计教程 第1章C+编程简介,C+语言程序设计教程 第2章数据类型与表达式,基本算术运算符及其含义:,2.6.2算术运算符,(3)当/运算符用于两个整数相除时,如果商含有小数部分,将被截掉。如果要进行通常意义的除运算,则至少应保证除数或被除数中有一个是浮点数或双精度数。
24、,(4)在使用算术运算符时,需要注意有关算术表达式求值溢出的处理问题;,5/4/结果是14/5/结果是05/4.0/结果是1.254.0/5/结果是0.8,short i=32767,j,k;j=i+1;k=i+2;coutj=j,k=kendl;执行结果为:j=-32768,k=-32767,注意:在书写除法运算式时,通常将参加运算的整数值后补上小数点与0作为双精度(double)常量参加运算。,C+语言程序设计教程 第1章C+编程简介,C+语言程序设计教程 第2章数据类型与表达式,关系运算符及其含义:,2.6.3 关系运算符,(1)若关系运算符的计算结果继续用在表达式中,true与fals
25、e分别当成了1与0。,(2)关系运算符的操作数可以是任何基本数据类型的数据,但由于实数(float)在计算机中只能近似地表示一个数,所以,一般不能直接进行比较。当需要对两个实数进行=、!=比较时,通常的做法是指定一个极小的精度值,若两实数的差在这个精度之内时,就认为两实数相等,否则为不等。,x=y 应写成 fabs(x-y)1e-6/fabs(x)求double类型数x的绝对值,(3)关系表达式就是由关系运算符将两个操作数连接起来的式子。这两个操作数可以为常量、变量、算术表达式等。,例如:a+bc+d ab=cd a=bc,注意:关系运算符的比较运算是由两个等号组成,不要误写为赋值运算符=。,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据类型 表达式 new
链接地址:https://www.31ppt.com/p-6578806.html