C语言进阶——数据的存储

首先我们已经学习过的数据类型有

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

指针类型

       

二、整形在内存中的存储

变量的创建是要在内存中开辟空间的。空间的大小是根据不同的类型而决定的C语言进阶——数据的存储_第1张图片

 

一个int型占4个字节,所以它所占的内存大小就是4个字节空间

在计算机中,数据存储只能用二进制表示 0和1,而整型的存储方式有三种:原码,反码,补码,符号位是最高位的0表示整数,1表示负数。

原码:按照整形大小转化为二进制

反码:原码符号位不变,其他位按位取反

补码:反码+1得到的就是补码

原反补三者之间是可以相互转换,而内存中保留的就是补码。

三、大小端的介绍

大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中。

小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地

址中。

计算机在内存中以字节为单位,在多字节的类型存储当中就存在排序问题,所以就出现了大小端存储模式。既然是字节的排序,则单字节的char类型无大小端之分。

C语言进阶——数据的存储_第2张图片

 

四。浮点数在内存中的存储

 

 C语言进阶——数据的存储_第3张图片

这个例子,我们也可以看出相同的地址,在不同的类型输出当中存在很大的差异,所以说内存当中整形与浮点数的存储方式不同。

浮点数的存储方式如下;C语言进阶——数据的存储_第4张图片

 

对与32位的浮点数:

C语言进阶——数据的存储_第5张图片

对与64位的浮点数:

C语言进阶——数据的存储_第6张图片

 

 

你可能感兴趣的:(C语言,c语言,开发语言,后端)