原文:浮点数运算的机器误差分析

用一个浮点数相加的例子来演示计算机在计算时所产生的误差。 在Python中,用 . . 会得到 . 。 浮点数简介 浮点数的表示方法:目前流行的浮点数标准是IEEE 。用 个bit来表示双精度。 首位为符号位s, 代表正, 代表负。 接下来的 位代表指数,将其理解为一个无符号的数字e,例如, 就代表 。定义指数 阶码 M和偏置Bias,其中偏置,定义,容易看出E的范围为 到 。对于单精度,。 最后 ...

2019-03-25 23:46 0 1176 推荐指数:

查看详情

浅谈浮点数运算误差

测试程序 我们知道,浮点数运算存在舍入误差。在某些特殊的情况下,舍入误差还可以累计到非常大的地步。让我们来看一下测试程序吧: 在这个程序中: 第 19 行通过 while 循环不断进行累加: z += z / 2 - w; 。w 是不变的,而 z 是通过不断累加而增大 ...

Sun Feb 24 06:41:00 CST 2013 3 7428
计算机浮点数运算误差与解决误差的算法

1. 浮点数IEEE 754表示方法 要搞清楚float累加为什么会产生误差,必须先大致理解float在机器里怎么存储的,这里只介绍一下组成 由上图可知(摘在[2]), 浮点数由: 符号位 + 指数位 + 尾数部分, 三部分组成。由于机器中都是由二进制存储的,那么一个10进制的小数 ...

Mon Jun 19 02:36:00 CST 2017 0 4857
浮点数运算步骤

浮点数的加减运算一般由以下五个步骤完成:对阶、尾数运算、规格化、舍入处理、溢出判断 一、对阶 所谓对阶是指将两个进行运算浮点数的阶码对齐的操作。对阶的目的是为使两个浮点数的尾数能够进行加减运算。因为,当进行M x·2Ex与M y·2Ey加减运算时,只有使两浮点数的指数值部分相同,才能将 ...

Thu Aug 01 02:39:00 CST 2019 4 5214
008_浮点数误差问题

一、浮点数   a):float类型又被称作单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求。   b):double表示这种类型的数值精度是float类型的两倍,又被称作双精度,绝大部分应用程序都采用double类型。 二、浮点数的表述范围 ...

Sun Oct 14 16:15:00 CST 2018 0 1303
浮点数表示误差详解

1. 存储结构 计算机存储浮点数采用IEEE754标准,其结构为: 数符s:0表示该数为正,1表示该数为负。占1bit大小。 阶码e:采用移码表示,即加上了一个固定的偏移。阶码全为1表示无穷大。 尾数f:尾数数值最高位1被隐藏,所以实际的尾数数值为1.f ...

Tue May 19 18:32:00 CST 2020 0 903
浮点数运算为什么更慢

1. 浮点数的表示 m 是尾数, 为±d.dddddd 其中 第一位必须非0 b 是基数, 下面,让我们回到一开始的问题:为什么0x00000009还原成浮点数,就成了0.000000? 首先,将0x00000009拆分,得到第一位符号位s=0,后面8位的指数E ...

Tue Oct 01 00:44:00 CST 2019 0 775
Java之浮点数运算

  浮点数运算和整数运算相比,只能进行加减乘除这些数值运算,不能做位运算和移位运算。   在计算机中,浮点数虽然表示的范围很大,但是浮点数有个非常重要的特点,就是浮点数常常无法精确表示   举例   浮点数0.1在计算机中就无法精确表示,因为十进制的0.1换算成二进制是一个无限循环小数 ...

Fri Oct 25 23:53:00 CST 2019 0 1465
浮点数的表示和运算

浮点数的表示和基本运算 1 浮点数的表示通常,我们可以用下面的格式来表示浮点数 S P M 其中S是符号位,P是阶码,M是尾数对于IBM-PC而言,单精度浮点数是32位(即4字节)的,双精度浮点数是64位 ...

Wed Jun 18 18:37:00 CST 2014 0 4453
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM