C语言之数据在内存中的存储(2),浮点数在内存中的存储
目录
前言
一、引例
二、浮点型在内存中的存储
三、浮点数在内存中的存和取过程
1.浮点数的存储过程
2.浮点数的取过程
四、引例解析
总结
前言
想知道浮点数在内存中是如何存储的吗,本文就告诉你答案,虽然一般情况题目还是面试涉及到浮点数在内存中的存储很少,但是了解其存储机制有利于加深我们对C语言的理解,修炼我们的内功。
❤️感谢支持,点赞关注不迷路❤️
一、引例
我们看以下代码:
#include int main() { int n = 9; float* pFloat = (float*)&n; printf("n的值为:%d\n", n); printf("pFloat的值为:%f\n", *pFloat); *pFloat = 9.0; printf("n的值为:%d\n", n); printf("pFloat的值为:%f\n", *pFloat); return 0; }
运行结果:
发现:我们观察到,将整数9以浮点型打印时为0.000000,将浮点型9.0以整形打印时是一个较大的数字。这一点就可以说明整形与浮点型在内存中的存储形式是不同的。
二、浮点型在内存中的存储
我们知道整数在内存中是以补码的形式储存的,那么浮点数是怎么存储的呢?
根据国际标准IEEE(电气和电子工程协会)754,任意一个⼆进制浮点数V可以表示成下面的形式:
举例:浮点数5.5用以上形式如何表示:
然后,只需要将S、M、E这三个数存储到内存中,就可以储存一个浮点数了,那么这三个数是如何在内存中存放的呢?
IEEE 754规定:
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。