浮点数在内存中的存储方式

在数学中,数值是不分类型的,数值的运算是绝对准确的。例如:78+97=175;1/3=0.333333……(循环小数)
数学是一门研究抽象的学科,数和数的运算都是抽象的
而在计算机中,数据是存放在存储单元中的,它是具体存在的。而且,存储单元是由有限的字节构成的,每一个存储单元中存放数据的范围是有限的,不可能存放“无穷大”的数,也不能存放循环小数。

注意:用计算机进行的计算不是抽象的理论值的计算,而是用工程的方法实现的计算,在许多情况下只能得到近似的结果。

所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度(占多少个字节)以及数据的存储形式。
不同的类型分配不同的长度和存储形式。

浮点数

浮点型数据是用来表示具有小数点的实数的。
实数是以指数形式存放在存储单元中的。一个实数表示为指数可以有不止一种形式,例如:3.14159,可以表示为:
3.14159 ⋅ 1 0 0 3.14159 \cdot 10^0 3.14159100
0.314159 ⋅ 1 0 1 0.314159 \cdot 10^1 0.314159101
0.0314159 ⋅ 1 0 2 0.0314159 \cdot 10^2 0.0314159102
这些表示,都代表同一个值。可以看到:小数点的位置是可以在314159几个数字之间和之前或之后(加0)浮动的,只要小数点位置浮动的同时改变指数的值,就可以保证它的值不会改变。由于小数点位置可以浮动,所以实数的指数形式称为浮点数。换言之,浮点数就是小数点在逻辑上是不固定的。

在指数形式的多种表示方式中,把小数部分中,小数点前的数字为0、小数点后的第1位数字不为0的表示形式称为标准化的指数形式。如 0.314159 ⋅ 1 0 1 0.314159 \cdot 10^1 0.314159101 就是3.14159的标准化的指数形式。
规范化的指数形式:一个实数在用指数形式输出时,是按规范化的指数形式输出的。如5689.65按指数形式输出,输出的形式只能是5.68965e3,而不会是0.568965e4。即小数点前必须有而且只有一位非零数字。
标准化的指数形式用于在存储。
规范化的指数形式用于输出。
在存储时,系统将实型数据分成小数部分和指数部分,分别存放。

存储形式

浮点数类型包括 单精度浮点型 和 双精度浮点型。
单精度占用4个字节,共32位大小。其格式为:
1位符号,8位指数,23位小数。有效位数为7位(6位小数+小数点)
在这里插入图片描述

双精度占用8个字节,共64位大小,其格式为:
1位符号,11位指数,52位小数。有效位数为16位(15位小数+小数点)
在这里插入图片描述
小数部分占的位数愈多,数的有效数字愈多,精度也就愈高。
指数部分占的位数愈多,则能表示的数值范围愈大。

关于具体例子的计算请查看转载的博客。

https://blog.csdn.net/zhu_wendao/article/details/89883597
https://blog.csdn.net/zhu_wendao/article/details/89883827

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值