C语言进阶-数据的存储

本文详细介绍了数据在内存中的存储方式,包括整型和浮点型的存储原理。讨论了变量类型如何决定内存空间的大小,以及二进制序列在内存中的表示。对于整型,讲解了补码的使用;对于float类型,阐述了SME(符号位、指数位、有效数字)的概念,并解释了不同指数情况下的处理。同时,提到了大小端存储模式对数据存储的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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:此时指数太大,我们将该数看成无穷大或无穷小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值