一、整形常量
(1)表示
十进制表示:如123、-123。(不能以0开头,中间不能有空格或分隔号,如012、12 3、 12‘3都是不合法的)
八进制表示:以0开头,0表示该数据是八进制数,如0123表示八进制数123即(123)8。(组成八进制数的只能是数字0-7,如0286是错误的)
十六进制表示:以0x开头,0x表示该数据是十六进制数,如0x123表示十六进制123即(123)16。(组成十六进制数的只能是数字0-9、a-f,即从0到15)
(2)类型
当-32768
当{-2147483648
当x后加上u,则认为是unsigned(无符号)型。
当x后加上l,则认为是long int型。
二、整型变量
(1)表示
整形变量是以补吗形式表示的,一个正整形变量的补吗与源码等价,一个负整形变量的补吗等于源码的绝对值取反加一。如int a,b;a=123,b=-123;求a、b的补吗。在turboC和turboC++编译系统中,整形变量以2个字节即16位存放,因此a的源码为0000000001111011,其补吗为0000000001111011;b的源码为1000000001111011,绝对值源码为0000000001111011,取反得1111111110000100,加一得1111111110000101。
(2)类型
基本整形 int 16位
短整型 short int 16位
长整形 long int 32位
以上三类均可加上有符号(signed)或无符号型(unsigned)。
(3)声明
整形变量实行“强制类型定义”原则。即先声明后使用,如不事先声明,则系统不把它当作变量。
浮点型数据
一、浮点型数的含义
浮点型数实际上就是日常所说的实数。
二、浮点数在计算机中的存储形式
|
数符 |
阶码 |
尾数部分 |
数符:表示浮点数的正负,一般0表示正、1表示负。
阶码:即指数部分,只能是整数,正整数或负整数。
尾数部分:即小数点部分。(顾名思义不能含有整数,而只能是0.abc形式)。如3.14159
|
+ |
1 |
.314159 |
三、浮点型常量
(1)表示方法
十进制小数形式:±a.b
±表示正负,其中+可以省略。
a表示整数部分。
b表示小数部分。
当a=0或b=0是可省,但a、b不能同时省,小数点不能省。(若省去小数点则会误认为是整形数据)
十进制指数形式:±a.be±c 或 ±a.bE±c
±表示正负,其中+可以省略。
a表示整数部分。
b表示小数部分。
c表示指数部分。
e/E表示底数10。
a为0是可省,如 .23e+3=0.23e+3。
b为0且a不为0可省,同时可省小数点,如1e-3=1.0e-3。
c不可省,且必须为整数直接量。
a、b不能同时省,如 .e-3是错误的。
(2)浮点型常量的规范式
小数点前只有一位非0数字的表示形式被称为规范式。
(3)存储形式
用32位存储,称为单精度浮点数,其有效数为7位,如指定f为单精度浮点变量,将其赋值f=1111111.11,那么存储时只有1111111。一般用f/F作为后缀。
用64位存储,称为双精度浮点数,其有效位数为14。
用128位存储,称为长双精度浮点数,其有效位数为18。一般用l/L作为后缀。
四、浮点型变量
(1)浮点型变量的类型
float 单精度浮点型 32位表示 有效位7
double 双精度浮点型 64位表示 有效位14
long double 长双精度浮点型 128位表示 有效位18
(2)浮点型变量的声明
浮点型变量的声明与整型变量的声明一样,遵循强制声明原则。
float x,y 指定x、y为单精度浮点型
double z 指定z为双精度浮点型
long double h 指定h为长双精度浮点型
五、浮点型数的舍入误差
由于浮点型数是近似表示的,且由于存储空间的限制,浮点型数只能提供有限个有效数字,其它数字将被省去,因而容易产生舍入误差。如
#include
main ()
{
float a,b;
a=1234567.00e2;
b=a+20;
printf(“%f\n”,b)
}
其结果是b=a=123456700。这是不正确的,正确值应是123456720,但是由于a、b被指定为单精度浮点数,因此它们只能以7位有效数形式存储,其它的一概被舍去。
六、浮点型的溢出
Infinity 无穷大,超过指定类型的浮点型数范围内的最大值。
Subnormal 低于正常值。
NaN 没有数值。
字符型数据类型
一、字符型数据的定义
字符型数据是C中用来表示字母、标点符号、特殊符号的数据类型。
二、字符常量
两种形式:
(1)用单引号括起来的字符,如‘a’。
(2)用反斜杠开头的字符,又称转义字符,如\n。
存储形式:
字符常量以ASCII码(八进制数)存储,如存储字符‘A’即是存储其对应的ASCII码为十进制的65,八进制的101,二进制形式为1000001(附录A),以二进制存放在计算机中如图
|
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
(注:处理字符型数据必须注意1、找到其对应的ACSII码。2、将其ACSII码转换为二进制形式才是其在内存中的存储形式。3、字符型数据只占一个字节,即8个bit。4、附录A中的ACSII码是十进制形式的中间不需要进行八进制的转换)
转义字符:
\n 换行符
\b 退格符符
\r 不换行回车
\t 制表符
\f 换页符
\\ \
\’ ’
\\’’ ”
三、字符型数据的标识符char
四、字符变量
作用:
用于存放一个字符常量。(不可以存放字符串)
声明:
Char a,b,c,…;
五、字符串常量
表示:
字符串常以双引号“”括起来,引号内可以是0个或一个字符也可以是多个字符,如“”“a”和“welcome”都是合法的字符串。
与字符常量的区别:
1.书写
字符常量以单引号括起来,字符串以双引号括起来。
2.字符常量可以赋值给一个字符变量,字符串不可以。
注意事项:
1. 双引号在字符串中的运用,不可以直接输入“”,而要用\”,因为双引号是字符串的界限符。
2. 字符串在计算机中存储时会自动加上结束符\0(空字符),书写时不必写出。
3. \0与空格的区别:\0和空格所对应的十进制数分别为0和32,\0既不输入也不显示,系统自加,空格即输入又显示。
4. 字符串的换行书写:法一、加\后按回车。法二、分成若干个字符串。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24055160/viewspace-664667/ ,如需转载,请注明出处,否则将追究法律责任。