文章目录
类型的意义
1.使用这个类型开辟空间的大小(大小决定了使用的范围)。
2.如何看待空间的角度。
1.数据类型分类
1.1 整形家族
char : unsigned char ; signed char
short : unsigned short [int]; [signed] short [int]
int : unsigned int; [signed] int
long: unsigned long [int]; [signed] long [int]
1.2浮点数家族
float
double
1.3构造类型
数组类型
结构体类型 struct
联合类型 union
枚举类型 enum
1.4指针类型
int *pi;
char *pc;
float *pf;
void *pv;
1.5空类型
void
通常用于函数的返回类型,函数的参数,指针类型。
2.整形在内存中的储存形式
2.1原码,反码,补码。
内存以整数的补码形式储存意义
①使用补码,可以将符号位和数值域统一处理;
②加法和减法可以统一处理(CPU只有加法器);
③补码和原码相互转化 ,其运算过程相同,不需要额外的硬件电路。
负整数
符号位是1
原码:将整数部分变成二进制数。
反码:除符号位的数,其它的按位取反。
补码:反码加1。
正整数+0
符号位是0
原码、反码和补码相同
2.2大小端介绍
大端存储(大端字节序存储):把数据低位字节的内容放到高地址处,高位字节放到低地址处。
小端存储(小端字节序存储):把数据低位字节的内容放到低地址处,高位字节放到高地址处。
2.3无符号整数
就是整数大于等于0,没有符号位
2.4整形提升
对于无符号整数,前面补0;
对于有符号整数,前面补符号位;
对于某个数的整形提升,看声明的时候使用是什么数据类型;
%d是以有符号整数来打印的;
%u是以无符号整数来打印的;
注意:使用无符号整数的时候注意它的值的范围;
3.浮点型在内存中的存储形式
3.1浮点型的统一表示形式
(-1)^S * M * 2 ^ E
S=0表示正数、S=1表示负数;
M表示有效数字,大于等于1,小于2;
2^E表示指数位。
3.2浮点型以SEM来存入内存
单精度浮点型:float
双精度浮点型:double
3.3相关规定
(1) 1≤M<2 ,也就是说,M可以写成 1.xxxxxx 的形式,其中xxxxxx表示小数部分。
(2)E是无符号整数
8bit:求出的E+127后的二进制存入内存;
11bit:求出的E+1023后的二进制存入内存。
(3)E的取出规则
不全为0或1:减去127(或1023);M区的数字前加 1.XXXX;
全为0:M区的数字前加 0.XXXX,无穷小±0;
全为1:无穷大。