数据类型和表达式12合

上传人:tia****nde 文档编号:67694439 上传时间:2019-01-08 格式:PPT 页数:66 大小:425.51KB
返回 下载 相关 举报
数据类型和表达式12合_第1页
第1页 / 共66页
数据类型和表达式12合_第2页
第2页 / 共66页
数据类型和表达式12合_第3页
第3页 / 共66页
数据类型和表达式12合_第4页
第4页 / 共66页
数据类型和表达式12合_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《数据类型和表达式12合》由会员分享,可在线阅读,更多相关《数据类型和表达式12合(66页珍藏版)》请在金锄头文库上搜索。

1、第三章 数据类型和表达式,C+语言程序设计,王卫红/曹玉辉,河北经贸大学信息技术学院,主要内容,预备知识补充 数据类型 常量 变量 运算符和表达式 函数 习题,*预备知识补充,1十进制(Decimal) 代码:用0十个不同的符号来表示即基数(Radix)为10的进制。 运算规则:逢十进一,借一当十,2二进制(Binary) 代码:只有两个代码“0”和“1”,基数为二的进制 运算规则:逢二进一,借一当二。,4十六进制(Hexadecimal) 代码:采用09和A、B、C、D、E、F 运算规则: 逢十六进一,借一当十六。,3八进制(Octal) 代码:只有两个代码“0”,基数为八的进制 运算规则:

2、逢八进一,借一当八。,1 0 1 0 + 0 1 1 1,1 0 0 0 1,(0A)H+(07)H =(11)H,常用进制,进位计数制的基数与位权,N=an-1rn-1an-2rn-2a0r0a-1r-1a-mr-m,r进制数(Radix-r Number System)N可表示 为:,R进制数用 r个基本符号(例如0,1,2,r-1)表示数值,基数,权,数码,678.34=6102+7101+8100 +310-1+410-2,不同进制之间的转换,1其它进制与十进制的相互转换按权展开 例1(11101.011)2 =124+123+122+021+120+02-1 +12-2+12-3 =

3、(29.375)10 例2 (35.3)8=381+580+38-1=(29.375)10 例3 (1D.6)16=1161+13160+616-1=(29.375)10,表3-1 不同数制各位的权数(用十进制数表示),2. 十进制数据转换成其它进制 整数部分采用的是倒除法,即“除基数取余”的方法。小数部分采用“乘基数取整”法。 【例2】将(236)D转换成二进制。转换过程如图1-1所示。,(236)D=(11101100)B,100(D)=144(O)=64(H),例 100.345(D)1100100.01011(B),1.380,1.04,整数部分:除以 r取余数,直到商为0,余数从下到

4、上排列。 小数部分:乘以 r取整数,整数从上到下排列。,表3-2 将二进制数转变成十六和八进制数,二进制 八进制 十六进制,3.1 C+的数据类型,短整型(short) 整型(int) 长整型(long),整型 实型,数值类型 字符类型(char) 枚举类型(enum) 逻辑类型,结构体类型(struct) 联合类型(union) 类类型(class),基本类型 复合类型 引用类型,数据 类型,单精度型(float) 双精度型(double) 长双精度型,指针类型 引用类型 数组类型,注:整型数据、字符型数据又可加修饰符signed 有符号型,unsigned表示无符号型。,空类型(void)

5、,在程序中,数据通常以两种形式存在:常量和变量。 常量 在程序执行过程中值不能被改变的量称为常量。C+提供了:整型常量、实型常量、字符常量、字符串常量、枚举常量以及指针常量等。 在程序中常量以两种形式存在:字面常量和符号常量(标识符常量). 1.字面常量 :包括数字常量、字符常量和字符串常量。即字面本身就是它的值。如15 , 2.4 , f , “asd” 2.符号常量 : 在程序中用标识符代表的常数,对应一个存储空间。可以用define、const等命令定义。 使用符号常量的优点:(1) 含义清楚 (2) 修改方便,3.2 常量与变量,结果:7741,#include int x=6; #d

6、efine NU1 x+5 /末尾不加; const int NU=x+5; void main() coutNU*7NU1*7endl; ,思考:为何此程序会出现这样的结果?如何改进此程序?,#define ,const =;,变量是其值可以被改变的量。每一个变量都属于一种数据类型,用来表示(即存储)该类型中的一个值。,变 量,变量名、变量类型和存储单元是变量的三要素。进行变量声明后,计算机系统会为声明的变量分配存储空间,用以存放数据. 变量名实际上是一个符号地址。在程序中对变量的赋值和取值操作实际上是通过变量名找到相应的内存地址,然后从对应的存储空间中读取数据。,如 int x=3;,如:

7、 int a;float x,y; char ch; int x=4 , y=21 ;/声明时初始化 char ch=A ;,1. 变量的声明 (1) 格式: 数据类型 变量名列表 ;,2. 变量的赋值 格式: 变量 = 表达式;,如: x = 6 ; y = x+2 ; a = sqrt(b) ; y = x = x+2 ;,注1. 赋值号是 = , 而等于号是 = = 注2. 赋值运算符为右结合性, 先计算赋值号右边的表达式的值, 再将值赋给左边的变量, 最后一个式子等价于 y = ( x = x+2) ; 注3. 表达式包括 常量, 变量, 函数, 其他合法 的C语言表达式,注4.C+中

8、所有变量必须“先定义,后使用”。“先存值后取值”,#include #define M =1 const int N=10; void main() int x,y; cinxy; if (xN) y=M*x+1; else y=(x+M)*x-3; coutx“ “yendl; ,思考:此程序是否有问题?,数值类型,1. 整型常量 整型常量可以用十进制、八进制和十六进制表示: a)十进制表示,第一个数字不能是0,如:123,-108,0等。 b)八进制表示由数字0打头,如:0123,-011等。 c)十六进制表示由0x或0X打头,如:-0x1a2c,0xff等。 可在整型常量的后面加上l或L

9、,表示长整型常量,如:32765L;也可在整型常量的后面加上u或U,表示无符号整型常量,如:4352U;也可以在整型常量的后面同时加上u(U)和l(L),表示无符号长整型常量,如:41152UL或41152LU。 如果整型常量后面既没有l(L),又没有u(U),则为int型。,2.整型变量的定义 例: int x ,y; short a ,b; unsigned long z;,3. 整型数据的存储,C标准没有具体规定各类数据存储的字节数, 一般以一个机器字(Word)存放1个int数据, 16位机上int数据存储用两个字节。32位机上int数据存储用4个字节。以2字节为例:,int x=10

10、;,无符号整数 : 最高位与其他位一起表示数值, 只能存放正数。 范围是: 0000 0000 0000 0000 - 1111 1111 1111 1111 即 0 - 65535 (216-1),(2) 带符号整数 : 存储时最高位表示符号, 0为正, 1为负 正数的补码为其二进制数 (以short int 型为例),(计算 215-1=32767),16位有符号整数取值范围-32768+32767(-215215-1),- (215-1)最后得 -32767,215-1(32767),求 (- (215 -1 ))补,4.整型数据的溢出 例: int a,b; a=32767; b=a+

11、4;,5. 拓展整型,为拓展数据处理的范围, C语言通过类型修饰符来改变基本数据类型的含义, 使之精确适合于不同应用场合。拓展后的整型有短整型、长整型及无符号整型。,拓展整型数据类型、存储及表示范围,实型数据分为单精度和双精度和长双精度三种类型。 1、实型数据的书写:定点和浮点形式两种书写方法。 定点又称小数表示法, 是一种常规形式, 由整数部分、 小数点、小数部分三部分组成。C语言中的实数可以没有小数部分或没有整数部分, 如20., .375。 浮点形式由尾数、指数符号e或E、指数三部分组成, 尾数是一般形式的实数,指数是一个13位的十进制的整数。指数形式适于表示较大或较小的实数。如2.34

12、e10、2.34e-10, 相应于数学中2.341010、2.3410-10。 注:尾数不能少。,3.2.3.1.2 实型数据,错误:8.5e1.7,3、实型数据的类型及存储格式,注1:规格化浮点数,小数点位于第一个非零数字的后面。如-7.4E3 注2:对于一个定点数或浮点数,C+默认双精度,若后跟一个F或f,则按单精度数存储。也可在后面加上L(l)表示long double型。 注3:一个数的有效数字是指从该数最左边不为0的数字位起至最右边不为0的数字位止之间的每一个数字位,而这些数字位的个数称为该数的有效数字位数。如3500,2.705,-0.278,63.00和0.00104的有效数字位

13、数分别为2,4,3,2和3 ,单精度有效数字7位,双精度有效数字15位。,字符数据简称字符, 取值为ASCII码字符集中的字符。长度为一个字节,字符常量有两种类型: char 取值范围(-128-127) unsigned char 取值范围(0-255)。 1.字符常量表示方法 字符数据用单引号作界定符, 如a、 +、 %、 :、 1、 2。 注意: 单引号字符本身及双引号、反斜杠字符由于有特定的含义, 不能如此表示, 数字字符与数字不同。 ,字符数据,转义表示:通过反斜杠后跟ASCII码描述。ASCII码可采用3位八进制数或2位十六进制数, 相应描述形式是ddd与xhh(位数不够, 加0补

14、位), 这种表示方法称为转义表示或转码表示表示。如字符A可表示为A、 101、 x41。详见附表3-2,对一些特殊的字符只能用转义表示,如图形字符的表示376, 单引号、双引号、反斜杠可表示成047、042、 134。 对一些常用的特殊字符, C语言还提供特定的字符来转义表示: n: 换行 : 反斜杠字符 : 单引号字符 “: 双引号字符 a: 响铃报警 b: 退格 f: 走纸换行 r : 回车 t: 横向跳格 u: 竖向跳格 字符数据和整数在一定范围内互相通用 例如:,/li2_2_2.cpp #include void main( ) char ch; ch=a; coutch“ “int

15、(ch) “n“; ,输出结果: a 97,(2)字符数据与整数进行算术运算,/li2_2_3.cpp #include void main( ) char ch; int x; ch=A; x=ch+32; coutchar(x)“ “x“n“; ,输出结果: a 97,(1)字符数据用整数形式输出,1. 字串表示 字串数据用双引号作界定符, 如: chinaone、computer、$123.45、nabc、 %d%f 2. 字串存储 字串数据存储除存储构成字符串的字符序列本身外, 还必须附加存储字串的结束标志空操作字符0 存储一个字串的字节数等于字符个数加1, 即字串长度再加1。,“a”,注:a和“a”的含义是不同的。,字符串常量,null,枚举是一种构造数据类型,具有这种数据类型的量称为枚举量。枚举量实际上是一个int型常量。 语法格式:enum 类型名枚举常量1,枚举常量2,枚举常量3,.; 例:enum COLORRED,BLUE,GREEN,WHITE,BLACK; 在定义枚举类型时,还确定了枚举表中每个枚举符的取值。默认情况下,其数值从0开始,依次加1。如例中RED赋以0,BLUE赋以1,以此类推。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号