数据类型
数据类型决定使用该类型开辟内存空间的大小,以及看待内存空间的视角(int和float都占四个字节,但存储的数据类型不同)。
类型的分类
整型家族:分为有符号和无符号
char
unsigned char
signed char
char类型有无符号取决于编译器,其余整型类型int,short,long,long long,表示有符号类型。
浮点型家族:
float
double
构造类型
数组类型:int arr1[5]: int [5]
结构体类型:struct
枚举类型:enum
联合类型:union
指针类型
空类型
void表示空类型,通常用于函数的返回类型,函数的参数,指针类型
数值的表示形式
2进制:0b101
8进制: 025
16进制: 0x15
整数在内存中的存储
正整数原码、反码、补码相同
负整数:
原码:直接写出的二进制数字
反码:原码的符号位不变,其余位按位取反
补码:反码+1
大小端存储
大端存储:把一个数据的高位字节序存放在低地址中, 低位字节序存放在高地址中
小端存储:把一个数据的低位字节序存放在高地址中, 高位字节序存放在低地址中
浮点数在内存中的存储
浮点类型
float: 单精度浮点类型
double: 双精度浮点类型
long double: 扩展精度浮点类型
浮点数存储规则
每一个二进制浮点数由三部分组成:符号、指数和有效数字
例如:十进制9.5=二进制1001.1=1.0011* 23=(-1)0 * 1.0011* 2^3