C语言整数存储和浮点数存储

内存中整数的存储

内存中整数都是以补码存放的。而整数有正负之分。

正整数在内存中存放

在这里插入图片描述
**整数如果是正整数,则求出其原码就是其补码,将其存放在内存之中。
如果是负数,那就先写出其原码,经过计算得到其补码,存放在内存之中。

浮点数在内存中存储

在这里插入图片描述
注意:其中E是无符号的整型
浮点数存储的案例:
存储规则,接下来以32位例进行演示。
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/12d035a24e8b414ba6dc999553281106.png
存储注意事项:
在这里插入图片描述
在这里插入图片描述
所以说存储过程中M和E要格外注意。
在这里插入图片描述

以9.0在内存中存储为例。
在这里插入图片描述
VS调试验证:
在这里插入图片描述
**可以看到VS中内存中的数是以十六进制形式来存储的
**我们把内存中的0x 41 10 00 00转换成2进制数
得到以下值
在这里插入图片描述
*这和我们的计算是一致的,因此证明上述浮点数存储方式正确
*

总结:

内存中存放整数:

正数,原反补一致,原码就是存放在内存中的补码。
负数,需要先进行计算,算出补码存放在内存之中。

存放浮点数:

1.将十进制数,转换成二进制的形式,算出相应的S、M、E值。
2.存放E时,注意E为无符号整型,在32位环境下需要+127再进行内存存储。
3.存放M时,只需存放小数点后的数字即可,1可以忽略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值