



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、v1.0可编辑可修改C51的数据类型数据的格式通常称为数据类型。标准的C语言的数据类型可分为基本数据类型和组合数据类型,组合数据类型由基本数据类型构造而成。标准的C语言的基本数据类型有字符型char、短整型short、整型int、长整型long、浮点型float、和双精度型 double。组合数 据类型有数组类型、结构体类型、共同体类型和枚举类型,另外还有指针类型和空类型。C51 的居类型也分为基本数据类型和组合数据类型,情况与标准C中的数据类型基本相同,但其中char型与short型相同,float 型与double型相同。另外,C51中还有专门针对于 MCS-51 单片机的特殊功能寄存器型
2、和位类型。具体情况如下:1、字符型char有signed char 和unsigned char 之分,默认为 signed char。它们的长度均为一个字节,用于存放一个单字节的数据。对于signed char,它用于定义带符号字节数据,其字节的最高位为符号位,“ 0”表示正数,“1 ”表示负数,补码表示,所能表示的数值范围是 -128+127 ;对于unsigned char ,评测用于定义无符号字节数据或字符,可以存放一个字 节的无符号数,其所表示的数值范围为0255。Un sig ned char可以用来存放无符号数,也可以存放西文字符,一个西文字符占一个字节,在计算机内部用ASCII
3、码存放。2、int整型有signed int 和unsigned int之分,默认为 signed int 。它们的长度均为两个字节,用于存放一个双字节数据。对于sig ned int,它用一存放两字节带符号数,补码表示,所能表示的数值范围为-32768+32767。对于unsigned int,它用于存放两字节无符号数,数 的范围为065535。3、long长整型有signed long 和unsigned long 之分,默认为 signed long 。它们的长度均为四个字节,用于存放一个四字节数据。对于signed long,它用于存放四字节带符号数,补码表示,所能表示的数值范围为-4
4、8+47。对于unsigned long ,它用于存放四字节无符号数,所能 表示的数值范围为 095。4、float 浮点型float型数据的长度为四个字节,格式符合IEEE-754标准的单精度浮点型数据,包含指数和尾数两部分,最高位为符号位,“1”表示负数,“0”表示正数,其次的 8位为阶码,最后的23位为尾数的有效位,由于尾数的整数部分隐含为“1”,所以尾数的精度为 24位。在内存中的格式如下图所示。字节地址3210浮点数的内容SEEE,EEEEEMMM,MMMMMMMM,MMMMMMMM,MMMM其中,S为符号位;E为阶码位,共8位,用移码表示。阶码 E的正以值范围为1254,而对应的指
5、数实际取值范围为 -126+127 ; M为尾数的小数部分,共 23位,尾数的整数部分始终为“1”。故一个浮点数的取值范围为(-1) SX 2e-127Xo例如浮点数+=+1111,=+ 0111 X 2+110,符号位为“ 0” ,8位阶码E为+ 110+1111 11仁10000101B, 23 位数值位为 111 1001 1000 0000 0000 0000B, 32 位浮点数表示形式为 0100 00101111 1001 1000 0000 0000 0000B=42F98000H ,在内存中的表式形式如下图所示。字节地址3210浮点数的内容0100 00101111 10011
6、000 00000000 0000需要指出的是,对于浮点型数据除了正常数值之外,还可能出现非正常数值。 根据IEEE标准,当浮点数据取以下数值(16进制数)时即为非正常值:FFFF FFFFH (非数 NaN7F80 0000H (正溢出 +1NF)FF80 0000H (负溢出-1NF)另外,由MCS-51单片机不包括捕获浮点运算错误的中断向量,因此必须由用户自己根据可能出现的错误条件用软件来进行适当的处理。5、*指针型指针型本身就是一个变量,在这个变量中存放着指向另一个数据的地址。这个指针变量要占用一定的内存单元。 对不同的处理器其长度不一样,在C51中它的长度一般为13个字 节。6、特殊
7、功能寄存器这是C51扩充的数据类型,用于访问MCS-51单片机中的特殊功能寄存器数据。它分为sfr和sfr16两种类型,其中sfr为字节型特殊功能寄存器类型,占一个内存单元,利用它 可以访问MCS-51内部的所有特殊功能寄存器;sfr16为双字节型特殊功能寄存器类型,占用两个字节单元,利用它可以访问MCS-51内部的所有两个字节的特殊功能寄存器。在C51中对特殊功能寄存器的访问必须先用sfr或sfr16进行声明。7、位类型这也是C51中扩充的数据类型,用于访问MCS-51单片机中可寻址的位单元。在C51中,支持两种位类型:bit型和sbit型。它们在内存中都只占一个二进制位,其值可以是“ 1
8、” 或“0”。其中用bit定义的位变量在C51编译器编译时,在不同的时候位地址是可以变化的。 而用sbit定义的位变量必须与 MCS-51单片机的一个可以寻址位单元或可位寻址的字节单元 中的某一位联系在一起,在C51编译器编译时,其对应的位地址是不可变化的。F表为KEIL C51编译器能够识别的基本数据类型基本数据类型长度取值范围Un sig ned char1字节0255Signed char1字节-128+127Un sig ned int2字节065535Signed int2字节-32768+32767Un sig ned long4字节095Signed long4字节-48+37f
9、loat4字节士 士 +38bit1位0或1sbit1位0或1sfr1字节0255Sfr162字节065535在C51语言程序中,有可能会出现在运算中数据类型不一致的情况。C51允许任何标准数据类型的隐式转换,隐式转换的优先顺级顺序如下:Bit->char- >in t-> Ion g->floatsig ned-> un sig ned也就是说,当char型与int弄进行运算时,选自动对 char型扩展为int型,然后与 int型进行运算,运算结果为int型。C51除了支持隐式类型转换外,还可以通过强制类型转换符“()”对数据类型进行人为的强制转换。C51编译器
10、除了能支持以上这些基本数据类型之外,还能支持一下结复杂的组合型数据类型,如数组类型、指针类型、结构类型和联合类型等复杂的数据类型。在本书的后面将相 继介绍它们。8、枚举在C51语言中,用作标志的变量通常只能被赋予如下两个值中的一个:True(1)或False(O)。但是在编程中,常常会将作为标志使用的变量赋予除了True(1)或FaIse(0)以外的值。另外,标志变量通常被定义为int数据类型,在程序使用中作用往往会模糊不清。为避免这种情况,在 C51语言中提供枚举类型处理这种情况。枚举数据类型是一个有名字的某些整型常量的集合。这些整型常量是该类型变量可取的所有合法值。枚举定义时应当列出该类型变量的所有可取值。枚举定义的格式与结构和联合基本相同,也有两种方法。先定义枚举类型,再定义枚举变量,格式如下:enum枚举名枚举值列表;enum枚举名枚举变量列表;或在定义枚举类型的同时定义枚举变量,格式如下:enum枚举名
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025标准版租赁合同协议书
- 2025建筑工程质量检测有限公司委托合同
- 2025机械设备产品买卖合同范本
- 2025年的房屋租赁合同模板
- 2025建筑工程设计咨询合同(项目)
- 2025年城市住宅租赁合同协议
- 2025西安市企业员工劳动合同书
- 2025公寓租赁合同模板
- 医药学院教学课件:中药现代化与中西医结合
- 2025室内设计委托合同书模板
- 湖北省武汉市2025届高中毕业生四月调研考试数学试卷及答案(武汉四调)
- 创新创业实战学习通超星期末考试答案章节答案2024年
- GB 21258-2024燃煤发电机组单位产品能源消耗限额
- DB34∕T 4010-2021 水利工程外观质量评定规程
- 医疗美容诊所规章制度上墙
- 事业单位同意报考证明
- 音调控制电路课件
- N-TWI日产标准作业的设定课件
- 医疗机构双向转诊登记表
- 蔬菜水果报价单表
- 第4章液态金属凝固的热力学和动力学
评论
0/150
提交评论