单⽚机C语⾔C51的数据类型
C51的数据类型分为基本数据类型和组合数据类型,情况与标准C中的数据类型基本相同,但其中char型与short型相同,float型与double 型相同,另外,C51中还有专门针对于51单⽚机的特殊功能寄存器型和位类型。
⼀.字符型char
有signed char和unsigned char之分,默认为signed char。它们的长度均为⼀个字节,⽤于存放⼀个单字节的数据。
对于signed char,它⽤于定义带符号字节数据,其字节的最⾼位为符号位,“0”表⽰正数,“1”表⽰负数,补码表⽰,所能表⽰的数值范围是-128~+127;
对于unsigned char,它⽤于定义⽆符号字节数据或字符,可以存放⼀个字节的⽆符号数,其取值范围为0~255。unsigned char可以⽤来存放⽆符号数,也可以存放西⽂字符,⼀个西⽂字符占⼀个字节,在计算机内部⽤ASCII码存放。
经期浮肿⼆.int整型
分singed int和unsigned int。默认为signed int。它们的长度均为两个字节,⽤于存放⼀个双字节数据。对于signed int,⽤于存放两字节带符号数,补码表⽰,数的范畴为-32768~+32767。对于unsigned int,⽤于存放两字节⽆符号数,数的范围为0~65535。
杜修经
三.long长整型
分singed long和unsigned long。默认为signed long。它们的长度均为四个字节,⽤于存放⼀个四字节数据。对于signed long,⽤于存放四字节带符号数,补码表⽰,数的范畴为-2147483648~+2147483647。对于unsigned long,⽤于存放四字节⽆符号数,数的范围为0~4294967295。
四.float浮点型
微风英文float型数据的长度为四个字节,格式符合IEEE-754标准的单精度浮点型数据,包含指数和尾数两部分,最⾼位为符号位,“1”表⽰负数,“0”表⽰正数,其次的8位为阶码,最后的23位为尾数的有效数位,由于尾数的整数部分隐含为“1”,所以尾数的精度为24位。创造性游戏
五.* 指针型
指针型本⾝就是⼀个变量,在这个变量中存放的指向另⼀个数据的地址。这个指针变量要占⽤⼀定的
内存单元,对不同的处理器其长度不⼀样,在C51中它的长度⼀般为1~3个字节。
六.特殊功能寄存器型
这是C51扩充的数据类型,⽤于访问51单⽚机中的特殊功能寄存器数据,它分sfr和sfr16两种类型。其中:画动物大全
sfr为字节型特殊功能寄存器类型,占⼀个内存单元,利⽤它可以访问51内部的所有特殊功能寄存器;专升本学费多少
sfr16为双字节型特殊功能寄存器类型,占⽤两个字节单元,利⽤它可以访问51内部的所有两个字节的特殊功能寄存器。
在C51中对特殊功能寄存器的访问必须先⽤sfr或sfr16进⾏声明。
七.位类型
这也是C51中扩充的数据类型,⽤于访问51单⽚机中的可寻址的位单元。在C51中,⽀持两种位类型:bit型和sbit型。它们在内存中都只占⼀个⼆进制位,其值可以是“1”或“0”。
其中:⽤bit定义的位变量在C51编译器编译时,在不同的时候位地址是可以变化的,⽽⽤sbit定义的位
变量必须与51单⽚机的⼀个可以寻址位单元或可位寻址的字节单元中的某⼀位联系在⼀起,在C51编译器编译时,其对应的位地址是不可变化的。
KEIL C51编译器能够识别的基本数据类型:
在C51语⾔程序中,有可能会出现在运算中数据类型不⼀致的情况。C51允许任何标准数据类型的隐式转换,隐式转换的优先级顺序如下:女性英文
Bit→char→int→long→float→signed→unsigned
世界前十名大学
也就是说,当char型与int型进⾏运算时,先⾃动对char型扩展为int型,然后与int型进⾏运算,运算结果为int型。C51除了⽀持隐式类型转换外,还可以通过强制类型转换符“()”对数据类型进⾏⼈为的强制转换。
C5l编译器除了能⽀持以上这些基本数据类型之外,还能⽀持⼀些复杂的组合型数据类型,如数组类型、指针类型、结构类型、联合类型等这些复杂的数据类型,在后⾯将相继介绍。