浮点数加减法运算(对阶、尾数求和、规格化、舍入、溢出判断)

浮点数的加减法运算

前言:
运算过程:对阶、尾数求和、规格化、舍入、溢出判断


浮点加减运算

在计算机中,加减法运算用补码实现。
算术运算的常识:两个浮点数如果要进行加减法运算,它们的阶或者指数必须相等
在这里插入图片描述

一、对阶

  • 求阶差
  • 如果把阶码大的向阶码小的看齐,就要把阶码大的数的尾数部分左移,阶码减小。这个操作有可能在移位过程中把尾数的高位部分移掉,这样就引发了数据的错误,所以,尾数左移在计算机运算中不可取。
  • 如果把阶码小的向阶码大的看齐,在移位过程中如果发生数据丢失,也是最右边的数据位发生丢失,最右边的数据位丢失,只会影响数据的精度,不会影响数据的大小。
    在计算机中,采用小阶向大阶看齐的方法,实现对阶。

二、 尾数求和

补码加法

三、规格化

提高浮点数的表示精度,把计算机的提供的能够表示数据的硬件资源尽可能有效的利用起来。
在这里插入图片描述

  • 左规
    尾数左移一位,阶码减1,直到数符和第一数位不同为止(机器数表示方式是补码)。
  • 右规(尾数的绝对值太大时,右规)
    尾数右移一位,阶码加1。
    当尾数溢出( >1 )时,需要右规
    是否溢出,可以通过两位的符号位得出:
    即尾数出现01.xx…xx或10.xx…xx(两位符号位不同)

四、舍入

舍入,是指数据的长度超过了计算机当中存储数据的物理器件所保存的数据长度。低位部分就要进行处理,保证数据能够以比较精确的精度保存在计算机当中。

对阶右规过程中,可能出现尾数末位丢失,引起误差。为了尽可能减小误差,就需要考虑舍入。

舍入的方法:

  1. 截断法
    将移出的数据一律舍去。该方法简单,很常用。但是影响精度。

  2. 0舍1入法
    移掉的是1,则尾数末尾加1,移掉的是0,就不加。

例题:如果采用0舍1入法进行舍入处理,则0.01010110011舍去最后一位后,结果为()。
A.0.0101011001
B.0.0101011010
C.0.0101011011
D.0.0101011100
分析:0舍1入就相当于十进制舍入方法中的4舍5入,当这个数舍去最后一位时,这个数如果是0就写0,
如果是1,那么尾数末尾加一。即B.0.0101011010

  1. (末位)恒置“1”法
    将要保留的末位数据恒置1,无论右移掉的是1还是0,末位是1还是0。

五、溢出判断

在这里插入图片描述


例题1:x=0.1101✖201 ; y=(-0.1010)✖211。求x+y
解:先写出x和y的补码表示形式
[x]补码=00,01;00.1101
[y]补码=00,11;11.0110

  1. 对阶

    ①求阶差:
    在这里插入图片描述
    11,10转化成十进制数→(-2)
    所以根据小阶向大阶看齐,x的阶码向y的阶码看齐,并且x的阶码要加2,尾数要右移2位。
    ②对阶
    对阶后的[x]补’=00,11;00.0011

  2. 尾数求和
    在这里插入图片描述

  3. 规格化
    [x+y]补的尾数是11.1001,符号位是1,尾数的最高位也是1,补码形式表示。
    采用左规的方式,使数据规格化:把尾数左移一位,同时阶码减一。
    左规之后的数据:00,10;11.0010
    得到结果为:x+y=(-0.1110)✖210

例题2:
x=0.1101✖210,y=0.1011✖201,求x+y(除阶符、数符外,阶码取3位,尾数取6位)
解:
[x]补=00,010;00.110100
[y]补=00,001;00.101100
①对阶
在这里插入图片描述
小阶向大阶看齐,y向x看齐,[y]补’=00,010;00.010110
②尾数求和
00.110100+00.010110=01.001010

③右规
尾数溢出需要右规,位数右规一位,尾数等于00.100101,同时阶码要加一
[x+y]补=00,011;00.100101
x+y=0.100101✖211

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485206.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【剑指offer】面试题63:股票的最大利润(Java)

假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 1)的时候买入,在第 5 天(股票价格 6&a…

JSP实现登陆页面(表单提交、连接数据库、实现页面跳转)

JSP实现登陆页面(表单提交、连接数据库、实现页面跳转) 1.数据库设计 2.主页面展示 3.代码展示&#xff1a; index.jsp <% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%> <!DOCTYPE html PUBLIC …

任正非在“GTS云与终端云合作与融合进展”汇报会上的讲话

任正非内部讲话音频版作者&#xff1a;任正非来源&#xff1a;蓝血研究&#xff08;lanxueyanjiu)2021年1月12日&#xff0c;任正非在“GTS云与终端云合作与融合进展”汇报会上发表讲话。任正非要求&#xff0c;要围绕着体验把端、管、云拉通&#xff0c;优化华为的GTS服务网络…

Valid BFS? CodeForces - 1037D(思维 bfs)

我真是一只菜狗。。。。。。emm。。。 题意&#xff1a; 判断一个从1开始的队列是否可以按照bfs的顺序 进行遍历。。必须从1开始。。。然后后边依次是bfs顺序 解析&#xff1a; 看代码能看懂吧。。。emm。。。就是把每个有关系的用map标记一下 然后bfs的时候 加一个循环进队列就…

【剑指offer】面试题65:不用加减乘除做加法(Java)

写一个函数&#xff0c;求两个整数之和&#xff0c;要求在函数体内不得使用 “”、“-”、“*”、“/” 四则运算符号。 示例: 输入: a 1, b 1 输出: 2 提示&#xff1a; a, b 均可能是负数或 0 结果不会溢出 32 位整数 代码&#xff1a; class Solution { public int…

Hinton一作新论文:如何在神经网络中表示“部分-整体层次结构”?

来源 | AI科技评论作者 | Geoffrey Hinton编译 | 陈彩娴AI科技评论在 Twitter 上发现了一篇Hinton的新论文&#xff0c;作者只有Hinton本人&#xff0c;这篇论文没有介绍具体的算法&#xff0c;而是描绘了一个关于表示的宏观构想&#xff1a;如何在神经网络中表示部分-整体层次…

概率校准与Brier分数

1.再提逻辑回归 前面已经讲过了逻辑回归&#xff0c;这里不再细讲&#xff0c;只是简单的说一个函数&#xff0c;主要是方便大家更好的理解概率校准。 在逻辑回归中&#xff0c;用的最多的就是sigmod函数&#xff0c;这个函数的作用就是把无限大或者无限小的数据压缩到[0,1]之间…

【剑指offer】面试题66:构建乘积数组(Java)

给定一个数组 A[0,1,…,n-1]&#xff0c;请构建一个数组 B[0,1,…,n-1]&#xff0c;其中 B 中的元素 B[i]A[0]A[1]…A[i-1]A[i1]…A[n-1]。不能使用除法。 示例: 输入: [1,2,3,4,5] 输出: [120,60,40,30,24] 提示&#xff1a; 所有元素乘积之和不会溢出 32 位整数 a.lengt…

费曼:所有科学知识都是不确定的

来源 &#xff1a; 网络作为科学家&#xff0c;我们知道伟大的进展都源于承认无知&#xff0c;源于思想的自由。那么这是我们的责任——宣扬思想自由的价值&#xff0c;教育人们不要惧怕质疑而应该欢迎它、讨论它&#xff0c;而且毫不妥协地坚持拥有这种自由——这是我们对未来…

遍历性能

iOS开发中数组常用的五种遍历方式 随着iOS的不断发展&#xff0c;apple也不断推出性能更高的数组遍历方式&#xff0c;下面将对熟悉的五种遍历方式进行列举。 首先定义一个数组&#xff0c;并获取数组长度 一、for循环 二、forin 快速枚举 三、NSEnumerator 四、快速遍历 五、快…

【剑指offer】面试题68 - I:二叉树的最近公共祖先(Java)

给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个结点 p、q&#xff0c;最近公共祖先表示为一个结点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08;一个节点也可以是它自…

工业传感器:工业互联网的第一道门

来源&#xff1a;北京物联网智能技术应用协会作者&#xff1a;刘沁沈阳仪表科学研究院副总工程师、传感器国家工程研究中心常务副主任工业的发展离不开众多感知技术的加持&#xff0c;其中最为关键的技术之一便是传感器。可以说&#xff0c;工业传感器让自动化智能设备有了感知…

数学:二项式定理

先贴一张网图来弥补一下知识点&#xff0c;回顾NOIP2011计算系数 既然我们要求的是展开式中某一项的系数&#xff0c;那么就直接求出其对应的组合数就好了&#xff0c;但是要注意x和y都是有系数a和b的 x,y换成ax,by&#xff0c;得到x^ny^m的系数是a^n*b^m*C(k,n) 这样就可以了 …

【剑指offer】面试题03:数组中重复的数字(java)

在一个长度为 n 的数组 nums 里的所有数字都在 0&#xff5e;n-1 的范围内。数组中某些数字是重复的&#xff0c;但不知道有几个数字重复了&#xff0c;也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1&#xff1a; 输入&#xff1a; [2, 3, 1, 0, 2, …

城市大脑全球标准研究2:如何理解和定义城市大脑?

作者&#xff1a;刘锋城市大脑作为一个新生事物&#xff0c;如何理解和定义反映了人们对这个新事物的理解程度&#xff0c;同时由于城市大脑是一个复杂的智能巨系统&#xff0c;如何理解和定义它对于后续的建设和发展也将产生重大和深远的影响。目前对城市大脑的定义有如下几种…

1036 跟奥巴马一起编程(15 分)

美国总统奥巴马不仅呼吁所有人都学习编程&#xff0c;甚至以身作则编写代码&#xff0c;成为美国历史上首位编写计算机代码的总统。2014 年底&#xff0c;为庆祝“计算机科学教育周”正式启动&#xff0c;奥巴马编写了很简单的计算机代码&#xff1a;在屏幕上画一个正方形。现在…

【剑指offer】面试题04:二维数组中的查找(java)

在一个 n * m 的二维数组中&#xff0c;每一行都按照从左到右递增的顺序排序&#xff0c;每一列都按照从上到下递增的顺序排序。请完成一个函数&#xff0c;输入这样的一个二维数组和一个整数&#xff0c;判断数组中是否含有该整数。 示例: 现有矩阵 matrix 如下&#xff1a; …

Bengio、Hinton的不懈追求——深度学习算法揭示大脑如何学习

来源&#xff1a;AI科技评论编译&#xff1a;Don校对&#xff1a;青暮“如果我们能够揭示大脑的某些学习机制或学习方法&#xff0c;那么人工智能将能迎来进一步的发展&#xff0c;”Bengio如是说。深度学习依赖于精妙设计的算法&#xff0c;一行行精妙绝伦的公式让冰冷的计算机…

linux下的idea的界面问题,错位以及各种...

问题 ’ 方法 主题设置为GTK,多余的点会消失,而且字体也会好很多 转载于:https://www.cnblogs.com/ydymz/p/9595229.html

【剑指offer】面试题05:替换空格(java)

请实现一个函数&#xff0c;把字符串 s 中的每个空格替换成"%20"。 示例 1&#xff1a; 输入&#xff1a;s "We are happy." 输出&#xff1a;"We%20are%20happy." 限制&#xff1a; 0 < s 的长度 < 10000 思路&#xff1a;Java中S…