首先我们已经学习过的数据类型有
char//字符数据类型
short//短整型
int//整形
long//长整型
long long//更长的整形
float //单精度浮点数
double//双精度浮点数
unsigned ……//无符号类
它们的出现是为了使计算机能够更好的计算和解决问题。
在一段时间的学习中,我们可以将C语言的数据类型基本分为
一、类型基本的划分
整形:
char unsignde char、signed char
short unsigned short [int]、signed short [int]
int unsigned int、 signed int
long unsigned long [int]、signed long [int]
浮点型:
float
double
构造类型:
数组类型 [ ]
结构体类型 struct
枚举类型 enum
联合类型 union
指针类型
二、整形在内存中的存储
变量的创建是要在内存中开辟空间的。空间的大小是根据不同的类型而决定的
一个int型占4个字节,所以它所占的内存大小就是4个字节空间
在计算机中,数据存储只能用二进制表示 0和1,而整型的存储方式有三种:原码,反码,补码,符号位是最高位的0表示整数,1表示负数。
原码:按照整形大小转化为二进制
反码:原码符号位不变,其他位按位取反
补码:反码+1得到的就是补码
原反补三者之间是可以相互转换,而内存中保留的就是补码。
三、大小端的介绍
大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中。
小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地
址中。
计算机在内存中以字节为单位,在多字节的类型存储当中就存在排序问题,所以就出现了大小端存储模式。既然是字节的排序,则单字节的char类型无大小端之分。
四。浮点数在内存中的存储
这个例子,我们也可以看出相同的地址,在不同的类型输出当中存在很大的差异,所以说内存当中整形与浮点数的存储方式不同。
浮点数的存储方式如下;
对与32位的浮点数:
对与64位的浮点数: