目录
一、数据类型的分类
基本类型
整数类型
char
unsigned char
signed char
short
unsigned short [int]
signed short [int]
int
unsigned int
signed int
long
unsigned long [int]
signed long [int]
浮点型
float
double
构造类型
数组类型
char arr1[10];
int arr2[10];
char arr3[10]="hello";
double arr4[]={1000.0,2.0,3.4};
结构体类型
struct stu{
char *name; //姓名
int num; //学号
int age; //年龄
char group; //所在学习小组
float score; //成绩
};
枚举类型
enum DAY
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
};
联合类型
union Data { int i; double x; char str[16]; };
指针类型
int *pi;
char *pc;
float* pf;
void* pv;
空类型
int *a;
void *p;
p=a;
二、整数在内存中的存储
存储方法
整型在内存中是以补码的形式存储的
符号位都用0表示正,用1表示负(整数的原码、反码、补码都相同)
原码、反码、补码
原码
整数的二进制
反码
符号位不变,其他位按位取反
补码
反码+1
三、浮点数在内存中的存储
浮点数的类型
float
double
long double
浮点数的存储规则
二进制浮点数的表现形式
(-)^S*M*2^E
(-1)^S表示符号数,当S=0,V为整数;当S=1,V为负数
M表示有效数字,大于等于1,小于2
对于32位的浮点数,最高的1位是符号位s,接着的8位是指数E,剩下的23位为有效数字M。
对于64位的浮点数,最高的1位是符号位S,接着的11位是指数E,剩下的52位为有效数字M。