浮点数在内存中的存储

本文探讨了浮点数在内存中的存储方式,通过实例代码解释了浮点数如何被分解为符号位(S)、指数位(E)和尾数位(M),并详细阐述了每个部分的作用和存储规则。通过示例计算展示了不同数值如何转换为二进制表示,从而理解内存中的浮点数表示。

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

我们已经介绍过整数在内存中的存储方式,那浮点数在内存中是怎样存储的呢?

先看一段代码:

#include<stdio.h>

int main()
{
	int n = 9;
	float* pFloat = (float*)&n;
	printf("n 的值为:      %d\n", n);
	printf("*pFloat 的值为:%f\n", *pFloat);

	*pFloat = 9.0;
	printf("num值为:       %d\n", n);
	printf("*pFloat值为:   %f\n", *pFloat);

	return 0;
}

是不是会觉得是

9

9.0

9

9.0

运行之后:

发现我们的猜想是不对的,那为什么会是这样的结果呢,先搜索一下浮点数在内存中的内存规则:

 存储一个浮点数也是占用了32字节。并且把这32字节分为了3部分。用5.5这个浮点数举例子:

S:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值