C语言进阶-数据的存储

Posted -A7

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言进阶-数据的存储相关的知识,希望对你有一定的参考价值。

1.数据在内存中的存储

变量类型对于数据储存的意义

1.类型决定开辟内存空间的大小.
2.二进制序列在内存中储存的方式.例如int,double,float.
储存方式不一样 将一个类型输出到另一个类型中的结果就不一样

整型在内存中的存储

例如int i=3;

储存

1.先看赋值操作符右边,将对应的数字转换成二进制序列 ,在转换成补码形式
2.看变量类型开辟了多少空间,然后将二进制序列补码按字节放入对应空间中

读取

1.此时要先看变量类型,如果是整型无符号数直接按二进制序列输出,如果是有符号数需要求出补码对应的二进制序列;如果是float则较为复杂

大小端存储

小端存储:指数据的低位在内存中保存在低地址中
(例:0x0021FA14)在内存中是14 FA 21 00 内存中的储存跟数字表示相反
大端存储:数据的低位保存在内存的高地址中

float在内存中的存储

三要素S,M,E
S:符号位
E:指数位(-127才为实际指数)这里E为无符号数
M:有效数字为
在这里插入图片描述
float类型要转换成对应的计数法
例如-5.0,写成二进制是-101.1
例如:-5.0,写成二进制是-101.0,对应-1.01*2^2.。
对应的就是s=1,E=2+127,M=01
注:
标准10进制的有效数字>=1&<10;
标准二进制的有效数字>=1&<2;
所以小数点前的1没有必要存,故只需存小数点后数字
即有效数字M一定是1.XXXX,所以M只需要从左向右填上XXX,剩余位补0即可

注意E分三种情况:
E不全为0或不全为1:正常计算即可
E全为0:此时指数特别小,M不取决定性作用,此时我们将该值看为0
全为1:此时指数太大,我们将该数看成无穷大或无穷小

以上是关于C语言进阶-数据的存储的主要内容,如果未能解决你的问题,请参考以下文章

[C语言进阶]数据的存储

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

C语言进阶—数据的存储

从初识到进阶,硬核解说C语言< 进阶篇 1 > 深度剖析数据在内存中的存储

超详细的c进阶教程!C语言数据存储剖析

C语言进阶数据的存储