类型基本归类
整形:long short int 以及char也属于整形数组
浮点数:float double
构造类型:数组、结构体、枚举、联合
指针类型
空类型:void表示空类型(五类型),常用于函数返回类型、函数参数、指针类型
整形在内存中的基本存储
整数以补码形式存储在计算机中
正数原码、反码、补码相同
负数原码符号位不变,其他位按位取反得到反码,反码+1得到补码(补码求原码也可以取反+1)
大小端
大端存储模式:数据低位存储在高地址,数据高位存储在低地址
小端存储模式:数据低位存储在低地址,数据高位存储在高地址
浮点数在内存中存储
根据国际标准IEEE(电气和电子工程协会) 754,任意一个二进制浮点数V可以表示成下面的形式:
(-1)^S*M*2^E
S表示符号位正数时S=0,负数时S=1
M表示有效数字 2>M>=1
2^E表示指数位
对32位的浮点数,最高的1位是符号位s,接着的8位是指数E,剩下的23位为有效数字M
![](https://i-blog.csdnimg.cn/blog_migrate/0c0ca4720eb97489d6403fe25d4d2ee5.png)
对于64位的浮点数,最高的1位是符号位S,接着的11位是指数E,剩下的52位为有效数字M
![](https://i-blog.csdnimg.cn/blog_migrate/f7d272d8c87872f19ebbb451794d4ac3.png)
对于M的存储有特殊规定,M为1.****,存储在计算中的是****,所以1不用存储,这样就可以存储多一位
对于E较为复杂,在8位中E的范围0~255,在11位E的范围0~2047
E可能出现负数,在8位存储中需要+127,在11位存储中需要+1023
E的取出
1、E不全为0或者1:E-127(或-1023)得到真实值
2、E全0:这时,浮点数的指数E等于1-127(或者1-1023)即为真实值, 有效数字M不再加上第一位的1,而是还原为0.xxxxxx的小数。这样做是为了表示±0,以及接近 于 0的很小的数字。
3、E全1:这时,如果有效数字M全为0,表示±无穷大(正负取决于符号位s);