计算机中浮点数加法运算

article/2025/9/9 15:04:01

十进制浮点数加法

首先以手工过程将科学计数法表示的两个十进制数相加:

9.999*10^1 + 1.610 * 10^-1。假设有效位只有4个十进制,且指数为两个十进制数位。

步骤1:为了能让两数相加,我们需对指数较小的小数点进行调整,使1.610 * 10^-1的指数项较大的指数对齐。

1.610 * 10^-1   =  0.1610 * 10^0 = 0.01610 * 10^1

最后边的形式是我们需要的。因为其指数和较大的数9.999*10^1的指数相同。因此,第一步要将较小数的有效位右移,直到其指数和较大数的指数相同。由于我们只能表示4位十进制,故移位后得到的数为

0.016 * 10^1

步骤2:将有效位相加

 9.999
+0.016
——————
10.015

和为10.015*10^1

步骤3:因为和不是规格化的科学记数法表示,因此需要调整:

10.015*10^1 = 1.0015*10^2

因此,在加法后可能需要对和进行移位,使其变为规格化形式,同时相应地调整指数。这个例子中是右移,但如果一个数为正,一个数为负数,则和可能会有许多前导0,从而需要左移。无论指数是增加还是减少,都需要检查上溢或者下溢,必须保证指数能够被固定位数的指数字段所表示。

步骤4:因为我们假设有效位只有4位十进制(不包括符号位),所以需要对结果进行舍入。如:

1.0015*10^2

舍入为4位的十进制数

1.002*10^2

因为小数点后边第4位的数在5和9之间。注意,如果舍入有误,如将1加到了一串9上,则和不能再被规格化,需要再次执行步骤3。

总结:

二进制浮点数加法

尝试将0.5(十进制)和-0.4375(十进制)用二进制相加

首先,看一下这两个数用规格化科学计数法表示的二进制形式,假设保持4位精度:

 

0.5(十进制) = 1/2  十进制      = 1/(2^1) 十进制    = 0.1 二进制        =0.1 * 2^0 二进制     = 1.000 * 2^-1 二进制
-0.4375(十进制) = -7/16 十进制   = -7/(2^4) 十进制  = -0.0111 二进制  = -0.011*2^0 二进制   = -1.110*2^-2 二进制

步骤1:指数较小的数(-1.11*2^-2  二进制)的有效右移,直到其指数和较大数的指数相匹配:

-1.110* 2^-2 = -0.111*2^-1

步骤2:将有效位相加

-1.110 * 2^-1   +  (-0.111* 2^-1) = 0.001 * 2^-1  二进制

步骤3:将和规格化,并检查上溢和下溢:

0.001 * 2^-1 = 0.010 * 2^-2 = 0.100 * 2^-3 = 1.000*2^-4

127≥-4≥-126 ,没有上溢和下溢。(带偏差的指数为-4+127,即123,其在最小的指数1和最大的指数254之间(未保留的带偏差的指数)。)

步骤4:舍入和:

1.000 * 2^-4 二进制

这个和正好用4位表示,故不需要再舍入,然后

1.000*2^-4 = 0.0001000=0.0001 二进制
=1/(2^4) = 1/16 = 0.0625 十进制


http://chatgpt.dhexx.cn/article/ogDx8tox.shtml

相关文章

定点数和浮点数的运算

文章目录 1、补码加减法2、算法流程3、逻辑实现4、溢出判断5、移位操作6、舍入方法7、定点乘法运算8、定点除法运算9、浮点数相关计算 1、补码加减法 原码、反码、补码的转换: 1、先把数值转换成对应的二进制数;(进制转换)&#…

关于浮点运算和定点运算

什么是定点数? https://baike.baidu.com/item/%E5%AE%9A%E7%82%B9%E6%95%B0/11030127什么是定点运算? https://baike.baidu.com/item/%E5%AE%9A%E7%82%B9%E8%BF%90%E7%AE%97/1861887?fraladdin什么是浮点数? https://baike.baidu.com/item/%…

浮点数运算和溢出

何为浮点数 在大部分实现中,浮点数通常是基于IEEE浮点标准用V(-1)的形式来表示一个数 s是符号位,决定这个数是正数还是负数.significand M是一个二进制小数,范围在[1~ 2 - ]或者[0-] 中文称为尾数.exponent E是对浮点数加权,权重…

浮点数的运算

浮点数的加减运算 从十进制科学计数法理解浮点数的加减运算: 对阶的原则是小阶对大阶(算术右移),之所以这样做是因为若大阶对小阶(算数左移),则尾数的数值部分的高位需移出,而小阶对…

浮点数的加法运算

浮点数的加法运算分以下五个步骤: 1、对阶: 这一点和十进制中计算指数一样,首先应该使指数化为相同的指数幂,例如: x3*10^4,y4*10^3,则,xy3*10^40.4*10^4(30.4)*10^4 二进制中也是如此: x.…

2.6 浮点运算方法和浮点运算器

学习目标: 以下是一些具体的学习目标: 理解浮点数的基本概念和表示方法,包括符号位、指数和尾数。学习浮点数的运算规则和舍入规则,包括加、减、乘、除、开方等。了解浮点数的常见问题和误差,例如舍入误差、溢出、下…

什么是浮点数?

微信搜索关注「水滴与银弹」公众号,第一时间获取优质技术干货。7年资深后端研发,用简单的方式把技术讲清楚。 在上一篇文章中,我们主要介绍了在计算机中使用定点数表示数字的方式。 简单回顾一下,简单来说,用定点数表…

浮点数加减运算

浮点运算要把阶码和尾数分别处理。 阶码的运算是定点整数运算,对阶码的运算四种:阶码加1,阶码减1,两阶码求和,两阶码求差。 尾数的运算是定点小数运算,运算过程中一般取双符号位 浮点运算器总是由处理阶…

浮点数运算原理详解

导读:浮点数运算是一个非常有技术含量的话题,不太容易掌握。许多程序员都不清楚使用操作符比较float/double类型的话到底出现什么问题。 许多人使用float/double进行货币计算时经常会犯错。这篇文章是这一系列中的精华,所有的软件开发人员都应…

浮点数运算——加减乘除都有哈

什么是浮点数 浮点数运算异常 IEEE 754 标准规定的五种异常情况 浮点数除0的问题 浮点数加减运算 浮点数乘除运算 导读:浮点数运算是一个非常有技术含量的话题,不太容易掌握。许多程序员都不清楚使用操作符比较float/double类型的话到底出现什么问题…

浮点数的运算步骤

浮点数的运算步骤 浮点数的加减运算一般由以下五个步骤完成:对阶、尾数运算、规格化、舍入处理、溢出判断 一、对阶 所谓对阶是指将两个进行运算的浮点数的阶码对齐的操作。对阶的目的是为使两个浮点数的尾数能够进行加减运算。因为,当进行M x2Ex与M …

浮点数运算

今天学习了浮点数运算(加减乘除)。浮点数运算主要包括两部分:指数运算和尾数运算。在IEEE754标准下,指数运算就是阶码的运算,类似于无符号数运算。尾数运算是原码运算。之前一直很疑惑为什么前面的教材在介绍原码运算&…

计算机组成原理:浮点数的加、减、乘、除运算(含实例完整运算)

目录 浮点数的加减运算 零操作数的判断 对阶操作 尾数的加减操作 尾数的规格化 结果的舍入处理 结果的溢出判断 加减实例运算过程 浮点数的乘除法 零操作数的检查 阶码的加减操作 尾数的乘除操作 结果的规格化、舍入处理及溢出的判断 具体的操作如下图 乘除实例运算…

浮点数的运算方法

浮点数的运算方法 一、浮点数的表示1.浮点数的表示2.IEEE 754标准3.浮点数类型 二、浮点数的加减法1.定义2.运算步骤 三、运算部件四、强化练习 一、浮点数的表示 1.浮点数的表示 Ms表示尾数的符号位,E中1bit保存阶码的符号位其余空间存放阶码值,M中存放…

typeScript 接口(interface)及其与类型别名(type)的区别

背景 最近自己在学习一些视频剪辑相关的工具,像爱剪辑,剪映这些软件。然后就想自己是不是也可以实现一个类似的,轻量级的在线剪辑工具。最后发现这个款node端的工具库FFCreator,接下来简单介绍一下如何来搭建开发环境&#xff0c…

Type Description : This type is a general type that can be used to declare

错误描述: Complex type: param-valueType Description : This type is a general type that can be used to declare parameter/value lists. 解决方法: 把0移到init-param下面

Type and Value

Type and Value 前言一、reflect.Type1.1 数据结构1.2 方法1.2.1 所有类型通用方法1.2.2 不同基础类型的专有方法 二、reflect.Value总结参考资料 前言 reflect.Type和reflect.Value是go 反射的两大基本类型,一个管变量的类型方面,一个管变量的值方面。…

typescript interface 与 type 声明类型的区别

在 typescript 中, 我们定义类型有两种方式: 接口(interface) 和类型别名(type alias) 在官方文档中我们可以看到: Unlike an interface declaration, which always introduces a named object type, a type alias declaration can introduce a name for any kind…

type是什么

作者:newis 链接:https://www.zhihu.com/question/376890141/answer/1302417252 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 程语言的Type的话,有在不同的场景下有不同的意义…

Type-C

一、Type-C 从USB TYPE-C 的Spec上截一个USB TYPE-C母座的pin脚图: 可以看出,母座上有24根信号, 其中电源和地占据了8根,用于提升电流传输能力,剩下16个: (1)传输USB3数据的RXx和…