首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浮点数 floating point

浮点数 floating point

作者头像
平凡的学生族
发布2019-05-25 09:39:38
8040
发布2019-05-25 09:39:38
举报
文章被收录于专栏:后端技术后端技术

[Toc]

小数

  • 正数:原码=补码
  • 负数:
    • 原码 = 正数部分(去掉负号)的二进制值,且符号位(最左边的比特位)为1
    • 反码 = 正数部分(去掉负号)的二进制值,按位取反
    • 补码 = 反码 + 1
  • 小数点依旧用点
  • 纯小数的原码、反码、补码

补码的引进就是为了解决机器上减法运算不便的,思想是使符号位参与运算,即用补码表示的负数进行加法运算就相当...http://www.jianshu.com/p/979f6e89cb7a

浮点数

  • 浮点数由阶码, 尾数和符号位(数符位)组成

单精度与双精度

指数

  • 是以类似移码的形式出现
    • 双精度与单精度都保留00000000 与 11111111。
    • 单精度偏移127,双精度偏移1023。
    • 单精度的指数范围: -126 到 127 (1 - 127 到 254 - 127)
    • 双精度的指数范围:1 - 1023 到 2046 - 1023

尾数

尾数没有需要保留的数。最大都是全1,最小都是全0

特殊情况

指数全为1
尾数全为0
  • 视为无穷大。
  • 若符号位为1则是负无穷大,为0 则是正无穷大。
  • 运用无穷大,在计算中无需检查溢出。
尾数不全为0
  • 视为无效操作结果(NaN)

浮点数相加

步骤

graph TD
A(对大阶) -->B(加有效数)
B --> C(规格化) 
C --> |溢出处理| D(舍入处理)
D --> E(决定符号位)

1.对大阶[1] 2.加有效数(指数已相同,把有效数部分相加) 3.规格化[2],溢出处理(使其变为科学表示法形式) 4.舍入处理

舍入处理

博客
内容

有两种

  • “0舍1入”法:右移时被丢掉数位的最高位为0则舍去,反之则将尾数的末位加“1”。
  • “恒置1”法:只要数位被移掉,就在尾数的末位恒置“1”。从概率上来说,丢掉的0和1各为1/2。

溢出处理

阶码溢出
  • 上溢 超过了阶码可能表示的最大值的正指数值,一般将其认为是+∞和-∞。
  • 下溢 超过了阶码可能表示的最小值的负指数值,一般将其认为是0。
尾数溢出
  • 尾数上溢 两个同符号尾数相加产生了最高位向上的进位,将尾数右移,阶码增1来重新对齐。
  • 尾数下溢 在将尾数右移时,尾数的最低有效位从尾数域右端流出,要进行舍入处理

浮点数相乘

步骤

graph TD
A(数相加) -->B(尾数相乘)
B --> C(规格化) 
C --> |检查溢出| D(舍入)
D --> E(决定符号位)

规格化[3]

目的

为了提高数据的表示精度,为了数据表示的唯一性,它与浮点数的标准化并无关系

步骤

一个浮点数有不同的表示:

0.5  

0.05 * 10^1  

0.005 * 10^2

50 * 10 ^-2

尾数为R进制的规格化: 绝对值大于或等于1/R。

尾数规格化:1/2 ≤ M <1, 最高有效位绝对值为1,其中 M为尾数。

在计算机内,其纯小数部分被称为浮点数的尾数,对非 0 值的浮点数,要求尾数的绝对值必须 >= 1/2,即尾数域的最高有效位应为1,称满足这种表示要求的浮点数为规格化表示: 0.1000101010 把不满足这一表示要求的尾数,变成满足这一要求的尾数的操作过程,叫作浮点数的规格化处理,通过尾数移位和修改阶码实现。


  1. 以指数较大的数为准,把另一个数的指数偏移
  2. 这里的规格化并不是指定点小数的规格化。此处的浮点数规格化是指化成 $1.xx * 2^m$ (m >= 0)的规格化科学计数,而定点小数的规格化要求1/2 ≤ M <1。
  3. 书中的规格化有两个语言背景:(1)定点小数的规格化,要求1/2 ≤ M <1(2)浮点数相加时,对于结果的规格化,要求按照规格化科学计数的标准操作。此外,按照EEE754标准对浮点数进行"规格化"的操作,它的正式说法叫做标准化
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.08.23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 小数
  • 浮点数
    • 单精度与双精度
      • 指数
      • 尾数
      • 特殊情况
    • 浮点数相加
      • 步骤
      • 舍入处理
      • 溢出处理
    • 浮点数相乘
      • 步骤
    • 规格化[3]
      • 目的
      • 步骤
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档