C51第三课课件数据描述

上传人:s9****2 文档编号:567937152 上传时间:2024-07-22 格式:PPT 页数:29 大小:697KB
返回 下载 相关 举报
C51第三课课件数据描述_第1页
第1页 / 共29页
C51第三课课件数据描述_第2页
第2页 / 共29页
C51第三课课件数据描述_第3页
第3页 / 共29页
C51第三课课件数据描述_第4页
第4页 / 共29页
C51第三课课件数据描述_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《C51第三课课件数据描述》由会员分享,可在线阅读,更多相关《C51第三课课件数据描述(29页珍藏版)》请在金锄头文库上搜索。

1、你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述本章知识点:本章知识点:预备知识数据类型常量与变量第三课 数据类型1你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述计算机中数的表示及进制转换数码、基与权数码:表示数的符号基:数码的个数权:每一位所具有的值数制十进制 二进制 八进制 十六进制2.0 预备知识2你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述数制基权表示数码特点10,10,10,十进制数0910逢十进一二进制数0122,2,2,逢二进一八进制数0788,8,8,逢八进一十六进制数09,AF,af1616,16,16,逢十六进一十进制:4956= 410

2、+910 +510+610二进制:1011=12+02 +12+12十六进制:81AE=816+116 +1016+1416八进制:4275=48+28 +78+58条件运算符与表达式(2)3你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述n二进制、八进制、十六进制转换成十进制 方法:按权相加各种进制之间的转换4你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述n 二进制、八进制、十六进制转换成十进制n 十进制转换成二进制、八进制、十六进制方法:连续除以基,从低到高记录余数,直至商为0例 把十进制数459转换成十六进制数4591628161160(459)10=(1CB)16

3、1 C B 余11余12余 1各种进制之间的转换(整数)方法:按权相加5你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述l 二进制转换成八进制: 从右向左,每3位一组(不足3位左补0),转换成八进制l 八进制转换成二进制: 用3位二进制数代替每一位八进制数例 (1101001)2=(001,101,001)2=(151)8例 (246)8=(010,100,110)2=(10100110)2000 0001 1010 2011 3100 4101 5110 6111 7n 二进制与八进制之间的转换6你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述l 二进制转换成十六进制:

4、从右向左,每4位一组(不足4位左补0),转换成十六进制l 十六进制转换成二进制: 用4位二进制数代替每一位十六进制数例 (111)2=(0011,0101,0111,1101)2=(357D)16例 (4B9E)16=(0100,1011,1001,1110)2=(1110)20000 00001 10010 20011 30100 40101 50110 60111 71000 81001 91010 A1011 B1100 C1101 D1110 E1111 Fn二进制与十六进制之间的转换7你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述内存(RAM)以字节为单元组成每个字节有一

5、个地址一个字节一般由8个二进制位组成每个二进位的值是0或101234567012345678910.7643251字节和位8你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述原码:最高位为符号位,其余各位为数值本身的绝对值反码:正数:反码与原码相同负数:符号位为1,其余位对原码取反补码:正数:原码、反码、补码相同负数:最高位为1,其余位为原码取反,再对整个数加1数值的表示方法原码、反码和补码9你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述( 1 ) 10- ( 1 )10 = ( 1 )10 + ( -1 )10 = ( 0 )10 (00000001)原 + (10000

6、001)原 = (10000010)原 = ( -2 ) 下面是反码的减法运算: ( 1 )10 - ( 2)10 = ( 1 )10 + ( -2 )10 = ( -1 )10 (00000001) 反+ (11111101)反 = (11111110)反 = ( -1 ) 正确 ( 1 )10 - ( 1 ) 10= ( 1 ) 10+ ( -1 ) 10= ( 0 )10 (00000001) 反+ (11111110)反 = (11111111)反 = ( -0 ) 有问题. 数值的表示方法原码、反码和补码10你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述于是就引入了补码概

7、念. 负数的补码就是对反码加一,而正数不变,正数的原码反码补码是一样的.在补码中用(-128)代替了(-0),所以补码的表示范围为: (-1280127)共256个. 注意:(-128)没有相对应的原码和反码, (-128) = (10000000) 补码的加减运算如下: ( 1 ) 10- ( 1 ) 10= ( 1 )10 + ( -1 )10 = ( 0 )10 (00000001)补 + (11111111)补 = (00000000)补 = ( 0 ) 正确 ( 1 ) 10- ( 2) 10= ( 1 )10 + ( -2 )10 = ( -1 )10 (00000001) 补+

8、(11111110) 补= (11111111)补 = ( -1 ) 正确 所以补码的设计目的是: 使符号位能与有效值部分一起参加运算,从而简化运算规则. 使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计 数值的表示方法原码、反码和补码11你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述原码反码补码+7-7111+0-0数的范围01111111(-127+127)01111111(-127+127)01111111(-128+127)负数补码转换成十进制数:最高位不动,其余位取反加1例 补码: 取反: 加1: 10000111=-7(用一字节表示数)12你现在所处的位置在

9、:首页C语言教学幻灯片版第二章 数据描述数据类型总表C数据类型基本类型构造类型指针类型空类型void定义类型typedef字符类型char枚举类型enum整 型实型单精度型float双精度型double数组结构体struct共用体union短整型short长整型long整型int数据类型决定:1. 数据占内存字节数2. 数据取值范围3. 其上可进行的操作2.1 数据类型13你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述类型符号关键字数的表示范围所占位数整型字符型实型有无(signed)int16-3276832767(signed)short16-3276832767(signed

10、)long32-2147483648214748364716unsigned int0655353204294967295unsigned longunsigned short16065535有float323.4e-383.4e38有double32有char8-128127无unsigned char80255说明:数据类型所占字节数随机器硬件不同而不同,上表以51单片机为例:请看int和unsigned int基本数据类型3.4e-383.4e3814你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述类型符号关键字数的表示范围所占位数51专有bit101sbit101sfr802

11、5516sfr16065535说明:数据类型所占字节数随机器硬件不同而不同,上表以51单片机为例:请看int和unsigned int基本数据类型15你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述标识符定义:用来标识变量、常量、函数等的字符序列组成:只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线大小写敏感不能使用关键字长度:最长32个字符命名原则:见名知意不宜混淆 如l与I, o与0例:判断下列标识符号合法性sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123M

12、.D.John3days#33char$123ab2.2 常量与变量16你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述一般用大写字母是宏定义预处理命令,不是C语句直接常量:整型常量 请点击:实型常量 请点击:字符常量 请点击:字符串常量 请点击:如 #define PRICE 30定义:程序运行时其值不能改变的量(即常数)分类:符号常量:用标识符代表常量定义格式: #define 符号常量 常量例 符号常量举例(ch2_1.c)#define PRICE 30main() int num,total; num=10; total=num*PRICE; printf(total=%d

13、,total);运行结果:total=300常量17你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述三种形式:十进制整数:由数字09和正负号表示.如 123,-456,0八进制整数:由数字0开头,后跟数字07表示.如0123,011十六进制整数:由0x开头,后跟09,af,AF表示. 如0x123,0Xff例 12 与 12L例 30000 为int型 65536 为long int 型整型常量的类型根据其值所在范围确定其数据类型在整常量后加字母l或L,认为它是long int 型常量问题:0123 = ( )100x123 = ( )100Xff = ( )1083291255问题

14、:0123 = ( )100x123 = ( )100Xff = ( )10整型常量(整常数)整型常量(整常数)18你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述表示形式:十进制数形式:(必须有小数点) 如0.123, .123, 123.0, 0.0, 123.指数形式:(e或E之前必须有数字;指数必须为整数)如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 实型常量的类型默认double型在实型常量后加字母f或F,认为它是float 型实型常量(实数或浮点数)实型常量(实数或浮点数)19你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述定义

15、:用单引号括起来的单个普通字符或转义字符. 字符常量的值:该字符的ASCII码值转义字符及其含义:转义字符含义nvradddtbf“xhh转义字符含义换行垂直制表回车响铃单引号3位8进制数代表的字符水平制表退格换页反斜线双引号2位16进制数代表的字符如 101 -A 012 -n 376 - x61 -a 60 -0 483 -()例:A-101-x41-65如 A65, a97, 048 , n10如 a A ? n 101转义字符:反斜线后面跟一个字符或一个代码值表示例 转义字符举例(ch2_001.c,ch2_004.c) main() printf(101 x42 Cn); print

16、f(I say:How are you?n); printf(C Programn); printf(Turbo C);运行结果:(串口显示)A B CIsay:”How are you?”C ProgramTurbo C字符常量字符常量20你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述字符常量与字符串常量不同定义:用双引号(“”)括起来的字符序列存储:每个字符串尾自动加一个 0 作为字符串结束标志h e l l o 0例 字符串“hello”在内存中a a 0例 a“a”例 空串 “”0例: char ch; ch=“A”; 例: char ch; ch=A; 字符串常量字符串常

17、量21你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述编译程序根据变量定义为其分配指定字节的内存单元.地址int a=1, b=-3,c;abc2字节2字节2字节地址地址.内存1-3随机数概念:其值可以改变的量变量名与变量值变量定义的一般格式: 数据类型 变量1,变量2,变量n;变量初始化:定义时赋初值 例: int a,b,c; float data;决定分配字节数和数的表示范围合法标识符例: int a=2,b,c=4; float data=3.67; char ch=A; int x=1,y=1,z=1; int x=y=z=1;变量的使用:先定义,后使用例1 int stu

18、dent; stadent=19; /Undefined symbol stadent in function main 例2 float a,b,c; c=a%b; /Illegal use of floating point in function main 变量定义位置:一般放在函数开头main() int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%fn”,data);变量定义可执行语句main() int a,b=2; a=1; float data; data=(a+b)*1.2; printf(“data=%fn”,

19、data);变量变量22你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述占字节数随机器不同而不同,一般占一个机器字shortintlong可用sizeof(类型标识符)测量 实型变量实型变量float:占4字节,提供7位有效数字double:占4字节,提供1516位有效数字字符型变量字符型变量字符变量存放字符ASCII码char与int数据间可进行算术运算例1: float a; a=111111.111; /* a=111111.1*/例2: double b; b=111111.111; /* b=111111.111*/例 a=D; /* a=68; */ x=A+5; /*

20、x=65+5; */ s=!+G /* s=33+71; */没有字符串变量,用字符数组存放整型变量整型变量23你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述/*ch2_003.c*/ #define PRICE 12.5 main() int num=3; float total; char ch1,ch2=D; total=num*PRICE; ch1=ch2-A+a; printf(“total=%f,ch1=%cn”,total,ch1); 宏定义变量定义输出结果运行结果:total=37.500000, ch1=d例子24你现在所处的位置在:首页C语言教学幻灯片版第二章

21、数据描述指针是语言中一个重要的组成部分,使用指针编程有以下优点: (1)提高程序的编译效率和执行速度。 (2)通过指针可使用主调函数和被调函数之间共享变量或数据结构,便于实现双向数据通讯。 (3)可以实现动态的存储分配。 (4)便于表示各种数据结构,编写高质量的程序。例1: int *a; 指针变量指针变量25你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述void的含义void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。Void可以用来对函数返回的限定;例1: Void *a; 无值型(Void)26你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述1.十进制数189转换成二进制,八进制,十六进制分别为?(189)10 = ( )2 = ( )8 = ( )16练习:275BD27你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述2.十六进制数AB转换成二进制,八进制,十进制分别为?(AB)16 = ( )2 = ( )8 = ( )10练习:25317128你现在所处的位置在:首页C语言教学幻灯片版第二章 数据描述3.正数的原码,反码,补码之间的关系。负数的原码,反码,补码之间的关系。练习:29

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

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