计算机的运算方法-浮点表示-PART2解析

合集下载

浮点数在计算机中是如何表示的

浮点数在计算机中是如何表示的

浮点数在计算机中是如何表⽰的话题:浮点数在计算机中是如何表⽰的?回答:浮点数浮点数是属于有理数中某特定⼦集的数的数字表⽰,在计算机中⽤以近似表⽰任意某个实数。

具体的说,这个实数由⼀个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)话题:浮点数的解释回答:浮点数是属于有理数中某特定⼦集的数的数字表⽰,在计算机中⽤以近似表⽰任意某个实数。

具体的说,这个实数由⼀个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表⽰⽅法类似于基数为10的科学记数法。

浮点计算是指浮点数参与的运算,这种运算通常伴随着因为⽆法精确表⽰⽽进⾏的近似或舍⼊。

⼀个浮点数a由两个数m和e来表⽰:a = m * b^e。

在任意⼀个这样的系统中,我们选择⼀个基数b(记数系统的基)和精度p(即使⽤多少位来存储)。

m(即尾数)是形如±d.dddddd的p位数(每⼀位是⼀个介于0到b-1之间的整数,包括0和b-1)。

如果m的第⼀位是⾮0整数,m称作格化的。

有⼀些描述使⽤⼀个单独的符号位(s +或者-)来表⽰正负,这样m必须是正的。

e是指数。

这种设计可以在某个固定长度的存储空间内表⽰定点数⽆法表⽰的更⼤范围的数。

例如,⼀个指数范围为±4的4位⼗进制浮点数可以⽤来表⽰43210,4.321或0.0004321,但是没有⾜够的精度来表⽰432.123和43212.3(必须近似为432.1和43210)。

当然,实际使⽤的位数通常远⼤于4。

此外,浮点数表⽰法通常还包括⼀些特别的数值:+∞和−∞(正负⽆穷⼤)以及NaN('Not a Number')。

⽆穷⼤⽤于数太⼤⽽⽆法表⽰的时候,NaN则指⽰作或者⽆法定义的结果。

众所知,计算机中的所有数据都是以⼆进制表⽰的,浮点数也不例外。

然⽽浮点数的⼆进制表⽰法却不像定点数那么简单了。

先澄清⼀个概念,浮点数并不⼀定等于⼩数,定点数也并不⼀定就是整数。

浮点数的运算方法

浮点数的运算方法

浮点数的运算方法浮点数是计算机中一种表示实数的数据类型,其特点是可以表示带有小数部分的数字。

在进行浮点数的运算时,需要考虑到浮点数的精度问题、舍入误差以及运算顺序等因素。

浮点数的表示方法为:±m×be,其中m为尾数(即小数部分的数值),b为基数或底数,e为指数(表示位移的量)。

1.浮点数加法运算:-对两个浮点数的指数进行比较,将较小指数的浮点数的尾数左移指数之差的位数,使两个浮点数的小数点对齐。

-对齐后的尾数相加,得到一个和。

-对和进行规格化,即将结果的尾数进行处理,使其满足指定的位数限制。

-对规格化后的结果进行舍入运算,得到最终结果。

2.浮点数减法运算:-先将减数的指数调整与被减数的指数相等。

-对齐后的尾数相减,得到一个差。

-对差进行规格化和舍入运算,得到最终结果。

3.浮点数乘法运算:-将两个浮点数的指数相加,得到加法的和,并相应地调整两个浮点数的尾数。

-尾数相乘,得到一个乘积。

-对乘积进行规格化和舍入运算,得到最终结果。

4.浮点数除法运算:-将被除数的指数减去除数的指数,得到差,并相应地调整两个浮点数的尾数。

-尾数相除,得到一个商。

-对商进行规格化和舍入运算,得到最终结果。

在进行浮点数运算时需要注意一些问题:-浮点数的精度问题:由于浮点数的尾数有限位数,所以会存在精度丢失的问题。

这就意味着进行浮点数运算时,可能会出现舍入误差,导致结果有微小的偏差。

-运算顺序:浮点数的运算顺序可能会影响最终结果。

在连续进行多次浮点数运算时,可能会得到不同的结果。

这是因为浮点数的运算不满足交换律和结合律。

因此,在编程中需要谨慎选择运算顺序,以避免结果的不确定性。

-溢出和下溢问题:由于浮点数的范围限制,可能会出现溢出(结果超出浮点数的表示范围)或下溢(结果过小,无法表示)的情况。

针对这些情况,需要进行特殊处理,如返回特定的错误码或进行科学计数法表示。

在实际编程中,可以使用编程语言提供的浮点数运算库或内置函数来进行浮点数运算,以确保运算结果的准确性和可靠性。

浮点表示方法

浮点表示方法

浮点表示方法浮点数是计算机中的一种常见的数值表示法,主要用于表示小数。

在计算机内部,浮点数的表示需要使用特定的方法,这就是浮点表示方法。

下面,就让我们一步步来探究这一方法。

首先,我们需要了解浮点数的结构。

在浮点数中,有两个重要的部分:符号位和数值部分。

符号位决定浮点数的正负,而数值部分则包含了整数位和小数位。

接着,我们需要了解浮点数的精度。

由于计算机内部的存储空间是有限的,所以浮点数的精度是有限的。

在计算机内部,浮点数一般使用32位或64位的二进制数表示。

这意味着浮点数的精度是有限的,可能会存在一些精度误差。

接下来,我们要了解浮点数的表示方法。

在计算机内部,浮点数的表示方法主要有两种:IEEE 754标准和IBM格式。

在这两种方法中,IEEE 754标准是更为常用的一种。

在IEEE 754标准中,一个符号位和数值位都被存储在一个32位或64位的二进制数中。

在这个二进制数中,最高位表示符号,后面的位表示数值。

在数值部分,一定数量的位被用来表示整数部分,剩下的位则被用来表示小数部分。

其中,小数部分的位数称为尾数。

IEEE 754标准又将数值部分分为三个部分:符号位、指数位和尾数位。

指数位的作用是表示浮点数的真实值需要乘以的指数。

最后,我们要了解浮点数常见的错误。

由于浮点数的精度和精确表示有限,计算机进行浮点数运算时会存在一些精度误差。

这就会导致在浮点数计算中出现一些未知的错误。

例如,一些简单的计算可能会得出错误的结果。

以上就是关于浮点表示方法的一些基本内容。

掌握了这些知识,在进行浮点数计算时就可以更加准确地进行。

同时,还需要注意浮点数的精度以及计算中存在的误差,以保证计算结果的准确性。

第03章 3.5 浮点数的运算方法

第03章 3.5 浮点数的运算方法
12/17 12
移码运算:
[X+Y]移=[X]移+[Y]补 [X-Y]移=[X]移+[-Y]补 双符号位: 00 ~ 负数,无溢出 01 ~ 正数,无溢出 10 ~ 上溢 11 ~ 下溢 溢出条件:最高符号位为1
13/17 13
例如:已知 X=2010· 0.11011011, Y=2100· (-0.10101100) ,求X+Y。 (同上题,但改为阶用移码) 解: (1) 对阶 阶差ΔE=[EX]移+[-EY]补 =01010+11100=00110 (-2) X阶码小,MX右移2位,阶码取100。
(4) 舍入(0舍1入)
附加位最高位为1,在结果的最低位+1,得新结果: [M]补=11.00010110, M=-0.11101010。
(5) 判溢出
阶码移码符号位为01,故不溢出,最终结果为: X+Y=2011· (-0.11101010) 。
15/17 15
二、浮点数的乘法运算
X×Y=(MX×MY)· 2EX+EY
[MX]补=00 .00 110 110 11
下划线上的数是右移出去而保留的附加位。
14/17 14
(2) 尾数相加
[MX]补+[MY]补 =00.0011011011+11.01010100=11.10001010 11
(3) 规格化操作
左规,移1位,结果=11.00010101 10; 阶码-1,E=01100+11111=01011。(+3)
(1) 检测操作数是否为0,并置结果数符( ).
(2) 加阶:两数阶码相加,得积的阶码。 (3) 两数的尾数做定点乘法,得积的尾数。 (4) 否溢出。 (阶码运算、尾数规格化时都可能溢出)

浮点数的表示和基本运算

浮点数的表示和基本运算

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

两者的S, P, M所占的位数以及表示方法由下表可知以单精度浮点数为例,可以得到其二进制的表示格式如下其中S是符号位,只有0和1,分别表示正负;P是阶码,通常使用移码表示(移码和补码只有符号位相反,其余都一样。

对于正数而言,原码,反码和补码都一样;对于负数而言,补码就是其绝对值的原码全部取反,然后加1・)为了简单起见,本文都只讨论单精度浮点数,双精度浮点数也是用一样的方式存储和表示的。

2浮点数的表示约定单精度浮点数和双精度浮点数都是用IEEE754标准定义的,其中有一些特殊约定。

(1)当P = 0, M 二0 时,表示0。

(2)当P二255, M二0时,表示无穷大,用符号位来确定是正无穷大还是负无穷大。

(3)当F 二255, M !二0 时,表示NaN (Not a Number,不是一个数)。

当我们使用・Net Framework的时候,我们通常会用到下面三个常量Console. WriteLine(float. MaxValue); // 3. 402823E+38Console. WriteLine(float. MinValue); //-3. 402823E+38Console. WriteLine(float. Epsilon); // 1.401298E-45〃如果我们把它们转换成双精度类型,它们的值如下Console. WriteLine(Convert・ ToDouble(float・ MaxValue)); //3.40282346638529E+38Console. WriteLine(Convert・ ToDouble(float・ MinValue)); //-3.40282346638529E+38Console. WriteLine(Convert. ToDouble(float. Epsilon));// 1.401 29846432482E-45那么这些值是如何求出来的呢?根据上面的约定,我们可以知道阶码P的最大值是11111110 (这个值是254,因为2亦用于特殊的约定,那么对于可以精确表示的数来说,254就是最大的阶码T)。

浮点运算 计算机组成原理课件

浮点运算  计算机组成原理课件
规格化
在进行除法运算前,需要将浮点数规格化, 使它们的指数部分相同。
对齐
将浮点数的小数部分进行对齐,使它们的精 度相同。
相除
将规格化后的浮点数按位相除。
舍入
根据舍入模式,将结果舍入到最近的整数。
03 浮点数的溢出与舍入
溢出的原因与防止方法
原因
当浮点数的运算结果超出浮点数表示范围时,就会发生溢出。
比较精度
比较范围
06 浮点运算的应用与发展
浮点运算在科学计算中的应用
01 02 03
浮点运算在图形图像处理中的应用
浮点运算的发展趋势与未来展望
01 02 03
WATCHING
舍入与溢出
02 浮点运算的实现
加法运算的实现
规格化 对齐
相加 舍入
乘法运算的实现
01
规格化
在进行乘法运算前,需要将浮点数 规格化,使它们的指数部分相同。
相乘
将规格化后的浮点数按位相乘。
03
02
对齐
将浮点数的小数部分进行对齐,使 它们的精度相同。
舍入
根据舍入模式,将结果舍入到最近 的整数。
04
除法运算的实现
防止方法
可以通过对数表进行查找,判断是否会发生溢出,或者采用指数范围更大的表示方法。
舍入的原因与处理方法
原因
由于计算机的存储和运算精度的限制, 浮点数运算结果往往会出现舍入误差。
VS
处理方法
可以采用四舍五入、向上取整、向下取整 等方法进行舍入处理,以减少舍入误差。
浮点数的比较运算
比较方法
注意问题
计算机中的浮点数运算器
加法运算 乘法运算 除法运算
浮点运算在计算机中的实现过程

计算机组成原理:浮点数表示及运算(方案).ppt

计算机组成原理:浮点数表示及运算(方案).ppt
计算机组成原理
浮点数表示及运算
计算机组成原理
1
一、浮点数的表示
9×10-28 = 0.9 ×10-27 2×1033 = 0.2 ×1034
任意一个十进制数 N 可以写成
N=10E·×M (十进制表示)
计算机中一个任意进制数 N 可以写成
N=Re×m = 2E×M = 2±e× (±m)
m :尾数,是一个纯小数。 e :浮点的指数, 是一个整数。
浮点数的表示范围 负下溢 正下溢
负上溢
正上溢
-

负数 最
0
正数


+












N=2E×M
|N|→∞ 产生正上溢或者负上溢
|N|→0 产生正下溢或者负下溢
计算机组成原理
3
机器字长一定时,阶码越长,表示范围越大,精度越低 浮点数表示范围比定点数大,精度高
8位定点小数可表示的范围
0.0000001 --- 0.1111111
1/128 --- 127/128
设阶码2位,尾数4位 可表示2-11*0.0001 --- 211*0.1111
0.0000001 --- 111.1
设阶码3位,尾数3位 可表示2-111*0.001 --- 2111*0.111
0.0000000001 --- 1110000
= BBD8H
计算机组成原理
7
三 、浮点数的标准格式IEEE754
为便于软件移植,使用 IEEE(电气和电子工程师协会)标准IEEE754 标 准:尾数用原码;阶码用“移码”;基为2。

计算机浮点运算详解---深入学习计算机组成原理

计算机浮点运算详解---深入学习计算机组成原理

t3 t2 t1 t0 d3 d2 d1 d 0
当 di ti 形成后 经 2.5 ty 5 ty 7.5 ty 1 0 ty
From: 新闻
产生 产生 产生 产生
C3 ~ C0 C7 ~ C4 C11 ~ C8 C15 ~ C12
For: 分类信息
1 2
6.4
规格化形式 – 0.1×× … × 1.1×× … × 1.0×× … × 1.0×× … ×
不论正数、负数,第一数位为1
补码
From: 新闻
符号位和第 一数位不同
For: 分类信息
特例
S =–
1 2
= – 0.100 … 0
6.5
S0

FA0
An Bn
An-1 Bn-1
An-2 Bn-2
A1 B1
A0 B0
C-1
Si = Ai Bi Ci-1+Ai Bi Ci-1+Ai Bi Ci-1+Ai Bi Ci-1 Ci = Ai Bi Ci-1+Ai Bi Ci-1+Ai Bi Ci-1+Ai Bi Ci-1 = Ai Bi + (Ai+Bi)Ci-1
From: 新闻
C15 = D5+T5C11 = D5+T5D6+T5T6D7+T5T6T7D8+T分类信息7T8C-1 5T6T For:
5 7 x = (– —)×2-5 y = (—) ×2-4
6.4
x = (– 0.101000)×2-101
[x]补 = 11, 011; 11. 011000
y = ( 0.111000)×2-100

计算机组成原理第4章浮点数运算方法ppt课件

计算机组成原理第4章浮点数运算方法ppt课件
因此如果求阶码和可用下式完成: [jx]移+[jy]补= 2n+ jx +2n+1+ jy = 2n+ [2n +( jx + jy)] = [jx +
jy]移 (mod 2n+1) 则直接可得移码形式。
同理,当作除法运算时,商的阶码可用下式完成: [jx]移+[-jy]补 = [jx - jy]移
11
5. 溢出判断
在浮点规格化中已指出,当尾数之和(差)出现 01.××…×或10.××…×时,并不表示溢出,只有 将此数右规后,再根据阶码来判断浮点运算结果是否 溢出。
若机器数为补码,尾数为规格化形式,并假设阶符取 2位,阶码取7位,数符取2位,尾数取n位,则它们能 表示的补码在数轴上的表示范围如下图。
浮 点 数 加 减 运 算 流 程 图
16
浮点加减法运算
1. 大型计算机和高档微型机中,浮点加减法运算是由 硬件完成的。低档的微型机浮点加减法运算是由软 件完成的,但无论用硬件实现或由软件实现加减法 运算,基本原理是一致的。
2. 浮点加减法运算要经过对阶、尾数求和、规格化、 舍入和溢出判断五步操作。其中尾数运算与定点加
23
2. 尾数运算
(1)浮点乘法尾数运算 (2)浮点除法尾数运算
24
(1)浮点乘法尾数运算
预处理:检测两个尾数中是否有一个为0, 若有一个为0,乘积必为0,不再作其他操 作;如果两尾数均不为0,则可进行乘法运 算。
相乘:两个浮点数的尾数相乘可以采用定 点小数的任何一种乘法运算来完成。
规格化:相乘结果可能要进行左规,左规 时调整阶码后如果发生阶下溢,则作机器 零处理;如果发生阶上溢,则作溢出处理。

计算机浮点数的表示和运算

计算机浮点数的表示和运算

计算机浮点数的表⽰和运算计算机浮点数和存储和运算规则1、概述:众所周知,计算机只能识别⼆进制数据,即所有的⼗进制都需要转换成⼆进制才能在计算机中进⾏存储和运算,但是,⼗进制数有整数部分和⼩数部分,对于整数部分转换成⼆进制数的话,我们采⽤除2取余数法;⼩数部分的话我们采⽤乘2取整法;求出来后,我们对数字进⾏规范化处理;2、来个例⼦:把⼗进制⼩数6.36转换成⼆进制,具体怎么操作?上述例⼦我们把⼀个带⼩数的的⼗进制转换成了⼆进制:但是有没有发现⼀个问题?就是⼩数部分是⼀个⽆限循环的,我们计算机⼀个存储单元可是存不下这么多数据的呀,虽然可以跨存储区,但是⽆限的⼆进制,计算机是存不下的,不可能你定义⼀个数,结果电脑内存或硬盘⽴马塞满导致死机吧?那怎么办呢?进⾏规范化处理3、规范化处理规范化处理是只将⼀个浮点数转换成⼆进制后,根据存储规则,通过符号位+阶码+尾数的形式表⽰该浮点数;data = (-1)^s*M*2*E在Java语⾔中,存储浮点数主要有两种基本数据类型:Float和DoubleFloat:通过Float定义的变量,占4个字节的存储空间,即⼆进制数的长度为32位Double:通过Double定义的变量,占8个字节的存储空间,即⼆进制数的长度位64位注意:计算机表⽰浮点数时,是⽤8位或者11位去存储指数部分,在8位指数位数值上⾯,表⽰0~255,但是我们同样需要有负指数,正负指数的位数量为了均等,各⾃⼀半,-127~128,0是特殊点,特殊处理。

储存时候会加上127,这样就刚刚好是0~255;如果 E 为 11 位,它的取值范围为 0~2047,中间数为1023;这样就能很好的储存了,不然的话,需要判断符号位来判断数值的正负,如下图32位的长度表⽰浮点数时,我们可以得知当E+127>127则代表该数的阶码为正的,如果E+127<127则代表该数的阶码为负的,即01111111为正负数阶码的分隔值。

计算机组成原理第5讲浮点运算

计算机组成原理第5讲浮点运算

浮点运算重要性
提高计算机处理数值数据 的能力。
本节内容安排
01
02
03
04
讲解浮点数的表示方法和原理 。
介绍浮点运算的基本概念和重 要性。
分析浮点数加减乘除运算的过 程和方法。
探讨浮点数运算的误差和精度 问题。
02
浮点数的加减法运算
对阶操作
对阶的目的是使两数的小数点位 置对齐,即使两数的阶码相等。
对阶的原则是以小阶向大阶看齐, 即把阶码小的数的尾数右移,每 右移一位,阶码加1,直到两数
的阶码相等为止。
对阶过程中可能会出现尾数溢出 的情况,此时需要进行相应的处
理。
尾数相加/减
尾数相加/减是指将两个已经对阶的浮点数的尾数按位进行相加或相减。
相加/减时需要注意符号位,异号相加按补码相加规则处理,结果符号取绝对值大的 数的符号;同号相加按原码相加规则处理,结果符号取相同符号。
运算合并
将连续的乘除运算合并为一个 运算,以减少运算次数。
近似计算
采用近似算法进行乘除运算, 以提高运算速度但牺牲一定的 精度。
查找表法
通过查找表的方式实现乘除运 算,适用于固定点数的乘除运 算。
并行计算
采用并行计算技术,同时处理 多个乘除运算,以提高整体运
算速度。
04
浮点运算器的设计与实现
浮点运算器的基本结构
将乘积结果进行规格化, 以满足浮点数的表示范
围。
对乘积的尾数进行舍入, 以减小误差。
浮点除法运算
01
02
03
04
对阶操作
使被除数的阶码减去除数的阶 码,尾数进行相除。
尾数相除
按定点数除法规则进行。
规格化

浮点数表示方法与运算

浮点数表示方法与运算

浮点数表示方法与运算在计算机系统的发展过程中,曾经提出过多种方法表达实数,典型的比如定点数。

在定点数表达方式中,小数点位置固定,而计算机字长有限,所以定点数无法表达很大和很小的实数。

最终,计算机科学发展出了表达范围更大的表达方式——浮点数,浮点数也是对实数的一种近似表达。

1.浮点数表达方式我们知道任何一个R 进制数N 均可用下面的形式表示:N R =±S ×R ±e其中,S—尾数,代表N 的有效数字;R—基值,通常取2、8、16;e—阶码,代表N 的小数点的实际位置(相当于数学中的指数)。

比如一个十进制数的浮点表达1.2345×102,其中1.2345为尾数,10为基数,2为阶码。

一个二进制数的浮点表达0.001001×25,0.001001为尾数,2为基数,5为阶码;同时0.001001×25也可以表示成0.100100×23,0.100100为尾数,2为基数,3为阶码。

浮点数就是利用阶码e 的变化达到浮动小数点的效果,从而灵活地表达更大范围的实数。

2.浮点数的规格化一个数用浮点表示时,存在两个问题:一是如何尽可能多得保留有效数字;二是如何保证浮点表示的唯一。

对于数0.001001×25,可以表示成0.100100×23、0.00001001×27等等,所以对于同一个数,浮点有多种表示(也就是不能唯一表示)。

另外,如果规定尾数的位数为6位,则0.00001001×27会丢掉有效数字,变成0.000010×27。

因此在计算机中,浮点数通常采用规格化表示方法。

当浮点数的基数R 为2,即采用二进制数时,规格化尾数的定义为:1/2<=|S|<1。

若尾数采用原码(1位符号位+n 位数值)表示,[S]原=S f S 1S 2S 3…S n (S f 为符号位的数符),则满足S 1=1的数称为规格化数。

计算机组成原理浮点数运算

计算机组成原理浮点数运算

计算机组成原理浮点数运算
在计算机组成原理中,浮点数的运算涉及到数值的表示、加减运算等多个方面。

以下是浮点数运算的基本过程:
1. 对阶:在进行浮点数运算时,需要先对参与运算的浮点数的阶码进行对齐,即比较两个阶码的大小,将阶码较小的数向右移动,使得两个数的阶码相等。

2. 尾数运算:对阶完成后,进行尾数的加减运算。

尾数通常使用补码表示,加减运算规则与定点数的补码加减运算规则相同。

3. 结果格式化:根据尾数运算结果的符号和数值大小,确定最终结果的格式。

如果尾数的结果为正,则结果的格式与源码相同;如果尾数的结果为负,则结果的格式与补码相同。

浮点数的范围和精度由阶码和尾数的位数决定。

阶码的位数能够决定数的范围,尾数的位数决定数的有效精度。

在实际应用中,需要根据具体需求选择合适的浮点数表示方式和运算方法。

浮点数计算方法PPT课件

浮点数计算方法PPT课件

数,通常将前者称为真值,后者称为机器数或
机器码。 常用的机器码表示法:
1. 原码表示法
2. 补码表示法
3. 反码表示法
4. 移码表示法
2021/3/7
CHENLI
18
1. 原码表示法
若定点小数的原码形式为x0 .x1x2…xn , 则原码表示的定义是:
[x] =

{
x 1-x=1+|x|
1>x≥0 0≥x>-1
在机器的某个存储单元中,以便以后对计算结
果按这个比例增大。显然这要占用一定的存储
空间和运算时间。因此得到浮点表示法如下:
2021/3/7
CHENLI
5
浮点表示法:把一个数的有效数字和数的范围
在计算机的一个存储单元中分别予以表示,这种
把数的范围和精度分别表示的方法,相当于数的
小数点位置随比例因子的不同而在一定范围内自
假设现在的标准时间为4点正; 而有一只表已
经7点了,为了校准时间,可以采用两种方法:
一是将时针退 7-4=3 格;一是将时针向前拨12-
3=9格。这两种方法都能对准到4点,由此可以
看出,减3和加9是等价的,就是说9是(-3)对12
的补码,可以用数学公式表示:
-3=+9
(mod12)
mod12的意思就是12模数,这个“模”表
电子的质量(9×10-28克)和太阳的质量
(2×1033克)相差甚远,在定点计算机中无法直
接来表示这个数值范围.要使它们送入定点计
算机进行某种运算,必须对它们分别取不同的
比例因子,使其数值部分绝对值小于1,即:
9 × 10-28=0.9 × 10-27
2 × 1033=0.2 × 1034

第六章-计算机的运算方法03-浮点运算

第六章-计算机的运算方法03-浮点运算

浮点数:移码运算
移码:补码的符号位取反(1表示正号,0表示负号)
数据0有唯一的编码,即[+0]移=[-0]移=1000…0。
浮点数的阶码为什么用移码表示呢? 有利于机器数比大小!
1) 正数的移码大于负数的移码:[X]移 > [-X]移
原码、补码、反码都不具备。
2) 如果:X > Y 则 [X]移 > [Y]移 所以,在浮点运算中,可以方便地通过比较移码的大小来实现阶 码真值大小的比较,其他三种码都不具备这一特性。
尾数规格化提高精度浮点数的规格化形式尾数最高2位不全为0尾数最高3位不全为0浮点数的规格化基数r越大可表示的浮点数的范围越大基数不同浮点数的规格化形式不同基数r越大浮点数的精度降低16尾数最高4位不全为0浮点数
浮点:表示形式 IEEE754
浮点数的表示形式(以2为底): 0.8125 * 10 5
X = S ·2 j = 定点小数 * 2 定点整数
设机器数字长为 8 位(其中1位为符号位)对于整数,当其分别代表无符号 数、原码、补码和反码时,对应的真值范围。
二进制代码
00000000 00000001 00000010
无符号数 对应的真值 0 1 2 …
原码对应 的真值 +0 +1 +2 …
反码对应 的真值 +0 +1 +2 …
补码对应 的真值 +0 +1 +2 …
浮点数:移码运算
移码运算特点: 1) 最高位符号位,1表示正号,0表示负号。 如果是双符号位,最高位保持0:01正数,00负数。 溢出判断:最高位为1,10上溢,11下溢。 2)在计算机中,移码只执行加减法运算,且运算结果+2n修正; (即结果的符号位取反)得到[X]移。 例如:X=+1010 Y=+0011, 则[X]移=11010[Y]移=10011 [X]移+[Y]移=11010+10011 = 01101, 修正:[X+Y]移= 11101 运算法则: [X + Y]移 = [X]移+[Y]补 [X - Y]移 = [X]移+[-Y]补 [X+Y]移= [X]移+[Y]补 = 11010 + 00011 = 11101

计算机基础知识了解计算机中的浮点数表示和运算

计算机基础知识了解计算机中的浮点数表示和运算

计算机基础知识了解计算机中的浮点数表示和运算计算机基础知识:了解计算机中的浮点数表示和运算计算机科学中的浮点数是非常重要的一部分。

在许多计算机应用中,浮点数被用来表示和计算具有小数点的数值。

了解浮点数的表示方法和运算规则,对于理解计算机中数字处理的原理和特性非常有帮助。

本文将介绍计算机中浮点数的表示和运算规则。

一、浮点数表示方法在计算机中,浮点数采用科学记数法的方式进行表示。

它由两部分组成:尾数和指数。

尾数部分是一个二进制小数,通常将其规范化为1.xxxxxx的形式。

这个小数点的位置可以通过指数进行调整。

指数部分是一个带符号的整数,用于表示小数点在尾数中的位置。

正指数表示小数点向右移动,负指数表示小数点向左移动。

通过将尾数和指数组合起来,就可以表示任意大小和精度的浮点数。

二、浮点数运算规则在计算机中,浮点数的运算遵循一定的规则,包括加法、减法、乘法和除法等。

1. 加法和减法当进行浮点数加法或减法时,首先需要将两个浮点数的指数进行比较,并将较小的指数调整为与较大指数相等,同时也需要相应地调整尾数。

接下来,将调整后的尾数进行相加或相减,并根据结果进行规范化和舍入。

2. 乘法在浮点数乘法中,首先将两个浮点数的尾数进行相乘,并将结果进行规范化。

然后将两个浮点数的指数相加,得到最终结果的指数。

最后,根据指数的差异进行舍入和溢出的处理。

3. 除法在浮点数除法中,首先将两个浮点数的尾数进行相除,并将结果进行规范化。

然后将两个浮点数的指数相减,得到最终结果的指数。

最后,根据指数的差异进行舍入和溢出的处理。

三、浮点数的精度问题由于计算机中浮点数的表示是有限的,所以在进行运算时会存在精度的损失。

这是由于计算机在表示小数时只能采用有限的二进制位数。

例如,当两个非常接近的浮点数进行相减时,可能会因为精度限制而得到一个极小的非零值,这种情况被称为舍入误差。

此外,在进行大数和小数的运算时,可能会出现溢出或下溢的问题。

溢出是指计算结果超出了浮点数的表示范围,而下溢是指计算结果过小而无法表示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

③ 将尾数和阶码用定点表示
= 0. 1101 2- 011
尾数11位 阶码5位
[尾数]原= 0. 1101000000 [阶码]补= 1, 1101
机器码
11101 01101000000
浮点数-例题
鲁东大学 LUDONG UNIVERSITY
EX2: 设机器数字长为 24 位,欲表示±3万的十进制数,试问在 保证数的最大精度的前提下,除阶符、数符各取1位外,阶码、 尾数各取几位?
6.2 数的定点表示与浮点表示
鲁东大学 LUDONG UNIVERSITY
1. 定点表示
机器码:
Sf S1S2… Sn
符 号
数值部分n位

纯小数
小数点位置
整数
小数点位置
小数点位置固定-定点数
定 原码

数 补码表示 范来自反码围 移码-(2n-1) ~ 2n-1 -2n ~ 2n-1 -(2n-1) ~ 2n-1 -2n ~ 2n-1
尾数 S (n+1位)
jf j1 j2 j3 … jm Sf S1 S2 S3 … Sn
阶 码
m位 阶码数
尾 数
n位 尾数数

值部分

值部分


▪阶码 j 的位数 - 决定了浮点数的表示范围 ▪尾数S 的位数 - 决定了浮点数的表示精度 ▪尾数S 的符号 - 决定了浮点数的符号
浮点数的规格化
鲁东大学 LUDONG UNIVERSITY
鲁东大学 LUDONG UNIVERSITY
2.3 浮点数的表示范围
设:N=S r j S尾数n+1位, j阶码m+1位
绝对值非常小 按机器零处理
上溢
下溢
上溢
MIN负
MAX负 0 MIN正
MAX正
数值过大,无法
正数:
处理,溢出中断
MAX正 = S max正 2 j max
当阶码<最小阶码时,下溢
推广:
基数为4, |S| 4-1,左规/右规每次两位,阶码减/加1
基数为8, |S| 8-1,左规/右规每次三位,阶码减/加1
浮点数的表示范围
鲁东大学 LUDONG UNIVERSITY
2.3 浮点数的表示范围
纯小数
设:N=S r j S 尾数n+1位, j 阶码m+1位
整数
MIN负
MAX负 0 MIN正
(含1位数符),将十进制数 +11238 表示为浮点数机器码
浮点数尾数为原码,阶码为补码形式
解: ① 转换为二进制形式 ② 真值规格化表示
13 + 128 = 0.0001101
常用定点方式 尾数:原码/补码 阶码:补码/移码
∵ 该数为纯小数,但最高数值位1
∴ 需要左规
0.0001101 = 0. 1101 2-3
示 j: 阶码 整数
浮点数通过 定点S 和 j 表示
352.47 =0.35247 103 j
S
r
=3.5247 102
=35.247 101
N = 11.0101 尾数无法用定点表示 =0.0035247 105
= 11.0101 20 = 1.10101 21
通过乘10的不同次幂 小数点的位置不同
= 110.101 2-1
= 0.10101 210 = 0.00110101 2100
S为纯小数的表示有多种 究竟用哪种?
浮点表示
鲁东大学 LUDONG UNIVERSITY
2.1 浮点数的表示形式
▪ 一个浮点数通过尾数S和阶码j两个定点数表示
浮点数 N 在机器中的表示形式 阶码 j (m+1位)
2.2 浮点数的规格化
•规格化目的:规范表示,提高精度 N = 11.0101
•规格化要求:
= 0.10101 210
尾数S真值的最高位应为1(基数为2) = 0.00110101 2100
无数值意义
S: 0.1 xx…x
•规格化过程:(基数为2)
|S| 2-1 (0.5)
-左规 尾数左移一位,阶码减1 -右规 尾数右移一位,阶码加1
MAX正
正数:
MAX正 = S max正 2 j max =
MIN正 = S min正 2 j min =
(1-2-n) 2(2 m -1) 2-n 2-(2 m -1)
负数:
MAX负 = |Min|负= |S min|负 2 j min
=
- 2-n 2-(2 m -1)
MIN负 = |MAX|负 = |S max|负 2 j max = -(1-2-n) 2(2 m -1)
浮点数的表示范围
鲁东大学 LUDONG UNIVERSITY
2.3 浮点数的表示范围
纯小数
设:N=S r j S 阶码n+1位, j 尾数m+1位
整数
MIN负
MAX负 0 MIN正
MAX正
正数:
MAX正 = S max正 2 j max =
MIN正 = S min正 2 j min =
规格化表示
分析: ∵ 尾数为纯小数 ∴ 浮点数的表示范围由阶码决定 ∵ 215=32K ∴ 阶码的最大值为+15即可
∴ 阶码最少取4位数值位+1位符号位
∵ 机器字长共24位,除去5位阶码
∴ 尾数最长为19位,含1位符号位
浮点数-例题
鲁东大学 LUDONG UNIVERSITY
EX3:设浮点数尾数和阶码均用原码表示,且为规格化表示
MIN正 = S min正 2 j min
当阶码>最大阶码时,上溢
负数:
MAX负 = |Min|负= |S min|负 2 j min
MIN负 = |MAX|负 = |S max|负 2 j max
浮点数-例题
鲁东大学 LUDONG UNIVERSITY
EX1: 设浮点数字长16位,其中阶码5位(含阶符1位),尾数11位
-(1-2-n) ~ 1-2-n -1 ~ 1-2-n
-(1-2-n) ~ 1-2-n
不是纯小数 或者整数时 怎么表示?
6.2 数的定点表示与浮点表示
鲁东大学 LUDONG UNIVERSITY
2.浮点表示
N=Srj
EX: 352.47 怎么表示?
分 S:尾数 纯小数
别 表
r: 基数 一般 r =2,不需表示
(1-2-n) 2(2 m -1) 2-1 2-(2 m -1)
负数:
MAX负 = |Min|负= |S min|负 2 j min
=
- 2-1 2-(2 m -1)
MIN负 = |MAX|负 = |S max|负 2 j max = -(1-2-n) 2(2 m -1)
浮点数的表示范围
尾数11位,即10位数值位+1位符号位 阶码5位,即4位数值位+1位符号位
如果用补码表示呢?
相关文档
最新文档