问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

浮点数的使用

创作时间:
作者:
@小白创作中心

浮点数的使用

引用
CSDN
1.
https://m.blog.csdn.net/qq_39355579/article/details/141368621

浮点数是计算机中用于表示实数的一种数据类型,广泛应用于科学计算、工程设计等领域。本文将从浮点数的基本概念出发,深入探讨其在计算机中的存储方式和实现原理,帮助读者更好地理解这一重要的数据类型。

浮点运算

浮点数,英文为"float point",其字面意义就是可以漂移的小数点(浮动的小数点),用于表示含有小数的数值。在数学运算中,经常会遇到无限小数,如1/3=0.333333…无限循环。然而,计算机存储容量是有限的,需要舍弃掉一些精度,存储近似值。讨论浮点精度的目的也是在于程序中进行浮点数使用以及比较的时候更加小心。

浮点在计算机中存储

以前不同CPU的浮点表示方式是不同的,这就导致了机器之间的兼容性问题。后来英特尔发布了8087浮点处理器,被IEEE采用,成为业界的标准,被几乎所有CPU采用(有的GPU除外)。

IEEE 754定义了浮点的存储格式,如何取舍(rounding mode),如何操作(加减乘除等)以及异常处理标准(异常发生的时机与处理方式)。

首先以单精度浮点型float32为例:

float32是使用32位来表示浮点数的类型,主要有三个部分:

  • sign,符号位:1bit,0是正数,1是负数
  • exponent,指数部分:8bit,以2为底的指数
  • fraction,有效数部分:23bit,实际表示24bit数值,浮点数具体的数值

sign

0是正数,1是负数。

exponent

指数部分使用8位,以2为底的指数。为了能够表示正负指数,采用了一个偏移量(bias),对于float32来说,这个偏移量是127。因此,实际的指数值需要将存储的值减去127。

fraction

有效数部分使用23位,但实际上表示24位数值。这是因为最高位的1在规格化表示中是隐含的,不需要显式存储。例如,对于二进制数1.101,只需要存储101,而1是隐含的。

通过这种存储方式,float32可以在有限的32位空间内表示一个范围非常大的实数,同时保持一定的精度。

本文原文来自CSDN

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号