浮点数的运算方法

article/2025/9/9 21:47:15

浮点数的运算方法

  • 一、浮点数的表示
    • 1.浮点数的表示
    • 2.IEEE 754标准
    • 3.浮点数类型
  • 二、浮点数的加减法
    • 1.定义
    • 2.运算步骤
  • 三、运算部件
  • 四、强化练习


一、浮点数的表示

1.浮点数的表示

在这里插入图片描述
Ms表示尾数的符号位,E中1bit保存阶码的符号位其余空间存放阶码值,M中存放规格化后的尾数。
在这里插入图片描述
因为尾数规格化后其绝对值应大于或等于0.5D,故小数点后第一位都是1,故从小数点后第二位开始保存即可,节省空间并提高精度。
在这里插入图片描述
机器零的表示:
在这里插入图片描述

2.IEEE 754标准

预备知识:

◆ 单精度浮点数(32位),阶码8位,尾数为24位(内含1位符号位)
◆ 双精度浮点数(64位),阶码为11位,尾数为53位(内含1位符号位)
◆ 基数为2
阶码采用增码(即移码),尾数采用原码
规格化原码尾数最高位 1 不在尾数中表示出来
➢ 恒为1,计算时在尾数的前面自动添加1.
➢ 隐含的1是一位整数(即位权为20)

为什么阶码采用移码:便于比较浮点数的大小
在这里插入图片描述

移码(增码)的特点
最高位为符号位,1表示正数,0表示负数(不同于原码,补码,反码的符号位规定,更符合人们对数值大小的认知。)
◆ 移码只执行加减法运算—专为阶码而生
◆ 需要对运算结果修正,修正量为2n
◆ 数据零有唯一的编码

IEEE 754标准:

单精度浮点数(32位),阶码8位,尾数为24位(内含1位符号位) ,偏置值127(二进制:1111111)
◆ 基数为2
◆ 阶码采用增码(即移码),尾数采用原码
规格化原码尾数最高位 1 不在尾数中表示出来
➢ 恒为1,计算时在尾数的前面自动添加1.
➢ 隐含的1是一位整数(即位权为 2 0 2^{0} 20

标准化过程:
在这里插入图片描述

3.浮点数类型

C语言中的浮点数类型
◆ float (十进制有效数字位数为7位)
◆ double(十进制有效数字位数为17位)
◆ 扩展双精度 long double
➢ 长度和格式由编译器和处理器类型决定
◆ 强制类型转换
➢ int->float, 不会发生溢出,有效数字可能被舍去
➢ int/float->double, 没有问题
➢ double->float, 可能发生溢出,数据可能被舍入
➢ float/double->int, 可能发生溢出
◆ 将大的浮点数转换为整数可能会导致程序错误

二、浮点数的加减法

1.定义

在这里插入图片描述

2.运算步骤

  1. “对阶”操作---- Ex=Ey

求 △E=E-min(Ex, Ey); E=max(Ex, Ey),△E≠0
将阶码小的数的尾数右移△E位
原码:符号位不参加移位,尾数数值部分高位补0
补码:符号位参加移位,并保持原符号位不变

  1. 尾数的加减运算

执行对阶后,两尾数进行加/减运算,得到两数之和/差。

  1. 规格化操作
    双符号位的原码规格化尾数,其数值的最高位为1
    双符号位的补码规格化尾数,应是00.1xx…x或11.0xx…x

规格化规则:
如果结果的两个符号位的值不同,表示加减法运算尾数结果溢出。此时将尾数结果右移1位,阶码E+1,称为向右规格化,简称“右规”。
如果结果的两个符号位的值相同,表示加减法运算尾数结果不溢出。**若最高数值位与符号位相同,此时尾数连续左移,直到最高数值位与符号位的值不同为止。**同时 E-m(移位的位数) ,称为向左规格化,简称“左规”。

  1. 舍入

执行右规或对阶时,尾数低位上的数值会移掉,使数值的精度受到影响。常用0舍1入法。
当末尾移掉的最高位为1时,在尾数的末位加1.如果加1后又使尾数溢出,则要再进行一次右规。

  1. 检查阶码是否溢出

若阶码下溢,运算结果为机器零(通常将阶码和尾数全部置“0”);若上溢,则置溢出标志。

在这里插入图片描述
二进制移位:左移一位相当于乘2,右移一位相当于除2。

例题演示:
在这里插入图片描述
在这里插入图片描述

三、运算部件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、强化练习

在这里插入图片描述
解析:
在这里插入图片描述

在这里插入图片描述
解析:本题的关注点是精确二字。A的二进制是无限不循环小数;B的二进制是1.01;C的二进制是10.0;D的二进制是10.1;故不能精确表示的是A。
在这里插入图片描述
解析:
在这里插入图片描述



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

相关文章

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和…

Java Type

Type 是Java 编程语言中所有类型的公共高级接口(官方解释),也就是Java 中所有类型的”爹“。其中”所有类型“的描述尤为指的关注。它并不是我们平常工作中经常使用的int、String、List、Map等数据类型,而是从Java语言角度磊说&am…

常见USB接口总结:Type-A、Mini-USB、Micro-USB、Type-C等等

写在前面 最近在整理之前的笔记,打算把一些有价值的笔记发到CSDN分享一下。这篇总结参考的链接如下,结合了自己找的一些图片,非原创,侵权的话私聊我删除。 参考文章链接 https://mb.zol.com.cn/514/5147157.html 总览 标准Type-…

# USB Type-A、Type-B、Type-C及MicroUSB、MiniUSB接口定义

USB Type-A、Type-B、Type-C及MicroUSB、MiniUSB接口定义 文章目录 USB Type-A、Type-B、Type-C及MicroUSB、MiniUSB接口定义1 USB Type-A(USB-A)2 USB Type-B(USB-B)3 USB Type-C(USB-C)3.1 24Pin3.2 16Pi…

Java FileReader相对路径

实验一快要到DDL了,今天在用Javac和Java命令手动执行实验一的代码的时候发现一个问题,当时在IDEA中运行正常的代码,在javac编译手动用java执行的时候发现并不能通过,出问题的代码是一段(试图)使用相对路径来…

详解HTML的相对路径写法,详解URL相对路径的写法

虽然现在搭网站都会用各种框架,路径方面使用相对路径可能已经比较少了,不过还是总结一下吧。 假设D盘这个路径下有一些文件: D:\例子\html\images\ D:\例子\html\style\ D:\例子\html\example.html D:\例子\html\tupian.gif 1.若引用的资源和…

Python读取相对路径文件

例如下图目录结构: 第一种情况: 1)xxx.py想要打开a.txt,使用相对路径,有如下两种方式: 思路: xxx.py想打开的是b_file下的文件,XXX.py和b_file都在文件目录之下,两者是同级目录,因此操作就是在当前目录向下搜索,因此就可以很容易理解下面的意思了 特别提示:… \是错…

html 的相对路径和绝对路径

整篇文章是以 src 标签进行演示。 文章目录 一、相对路径 1、同级目录查找 2、上一级目录查找 3、下一级目录查找 二、绝对路径 一、相对路径 👵相对路径:从当前所处的目录开始查找。 1、同级目录查找 写法: 1.1.直接写文件名&#xf…

java web项目 相对路径怎么写_理解JavaWeb项目中的路径问题——相对路径与绝对路径...

背景:html 在刚开始学习javaweb,使用servlet和jsp开发web项目的过程当中,一直有一个问题困扰着我:servlet 和 jsp 之间相互跳转,跳转的路径应该如何书写,才能正确的访问到相应的servlet或jsp文件?后来,在课堂上,通过老师的讲解,再加上本身的一些思考和实验,终于对we…

相对路径 各种情况

1.相对路径概念 1.1 相对路径就是相对于目标文件或(相对虚拟目录)的位置。,请看上图,“a.html” 文件里引用了“b.jpg”图片,由于“b.jpg”图片相对于“a.html”来说,是在同一个目录的,那么要在“a.html”文…

java中相对路径怎么写_java中如何使用相对路径读取文件

java中使用相对路径读取文件的方法:1、使用文件【File file = new File(“src/test.txt”)】方法;2、使用类的相对路径;3、使用当前线程的类加载器;4、读取web工程下的文件。 【相关学习推荐: java中使用相对路径读取文件的方法: 一、简单粗暴的 File file = new File(“…

linux 相对路径当前目录,Linux绝对路径和相对路径

前言 在使用linux远程连接操作文件时,我们就会遇到一个问题就是我们必须知道文件的存放位置,才能准确的找到文件并操作文件,在这里指明文件地址就有两种方式,那就是绝对路径和相对路径。 Linux文件目录 我们知道,Linux 系统中所有的文件(目录)都被组织成以根目录“/”开始…

golang 文件操作时相对路径问题

用os包进行Open,Create等操作的时候,需要传入一个path。 这个path 可以是绝对路径, 也可以是相对路径。 这里主要说一下相对路径的坑,在goland的里 // ./是你当前的工程目录,并不是该go文件所对应的目录。 // 比如myPro…

Java io流使用相对路径读取文件

前言: 在大多数时候我们会需要Java程序读取某个文件,不采用绝对路径读取文件,而采用相对路径读取。方法如下: 在工程目录下读取文件: 文件目录: /*** 工程目录下的相对路径读取文件数据*/ public void …

java读取文件相对路径_Java相对路径读取文件

不管你是新手还是老鸟,在程序中读取资源文件总会遇到一些找不到文件的问题,这与Java底层的实现有关,不能算bug,只要方法得当,问题还是可以解决的。 项目的文件夹结构: repathtest ├─src │ └─com │ └─lavasoft │ ├─test │ …