-
计算机组成浮点数补码规格化负数表示范围
2019-06-26 15:50:42二、假设现在仅4位(符号位占一位),毫无疑问就是-0.001,原码表示就是1.001(最低位为0时-0在原码中也是0),可是然后规格化得1.111,不符合形式 三、(推理)这个数取反+1要变成1.0xx,那么原码必须是1.1xx...推理:关于浮点数的表示与运算章节中,补码规格化后的负数所能表示的范围
一、记住形式1.0xx,现要找最大的负数
二、假设现在仅4位(符号位占一位),毫无疑问就是-0.001,原码表示就是1.001(最低位为0时-0在原码中也是0),可是然后规格化得1.111,不符合形式
三、(推理)这个数取反+1要变成1.0xx,那么原码必须是1.1xx(因为若原码是1.0xx,取反加一后还要是1.0,则只有1.000,但个数是0不是负数)
四、由上一步可知最大的负数应尝试取到1.100,可是补码是1.111还是不符合,因此再尝试1.101,此时补码是1.011,得到结果
结论:规格化浮点数的补码规格化后负数为1.0xx形式且其最大值表示为1.01……1(不仅四位的话中间……处全补1)
反思:为何形式是1.0xx呢?(1是负数符号没毛病,但为何就不能是1.1?)
反证:若取1.1xx,则可取1.111,这个补码的原码是1.001,表示的数是-0.001,这时问题就出现了,究竟何为规格化?
规格化:通过调整一个非规格化浮点数的尾数和阶码的大小,使非零的浮点数在尾数的最高数位上保证是一个有效值,当基数为2时,尾数M的绝对值满足1/2<=|M|<=1
判断:凭最后一句尾数M的要求就可以理解为何形式是1.0xx了
再问:为何使非零的浮点数在尾数的最高数位上保证是一个有效值,尾数M绝对值就是大于1/2?(或者应该反过来说,为何尾数M绝对值就是大于1/2,可以保证最高数有效?)
易知:这是规定而来的,试想若能小于1/2,则最高位就是0了(尾数都是小数部分,相当于二进制下小数点后一位),那又怎么知道到第几位会有效?若设为>=1/4,那为何不是1/8呢?所以大于等于1/2是有道理的,可以保证最高位是1
延伸:这就不难理解了
原码与补码的正数规格化形式都是0.1xx,MAX=0.111,MIN=0.100(范围就是1/2到(1-2^-n))
负数时原码可以表示的形式是1.1xx,因为最大值1.100,最小值1.111(范围就是(1-2^-n)到1/2)
负数时补码可以表示的形式是1.0xx,因为最大值1.011,最小值1.000(范围是-1到-(1/2+2^-n)),注意1.000是-1的补码,补码中负0 是表示负得最多的数(即最小的负数)
-
数据规格化的总结
2016-09-21 15:04:48首先,原码的尾数规格化形式是很简单的: 正数的形式是:0.1xxxxxx…x,自然最大值就是0.1111111….1, 最小值是0.10000….0 负数的形式是:1.1xxxxxx…x,自然最小值就是1.111111….1, 最大值是1.1000…..0因为我们...首先,原码的尾数规格化形式是很简单的:
正数的形式是:0.1xxxxxx…x,自然最大值就是0.1111111….1, 最小值是0.10000….0
负数的形式是:1.1xxxxxx…x,自然最小值就是1.111111….1, 最大值是1.1000…..0因为我们很轻松就能联系到:小数的最高位必须是1.
那么到补码表示的时候,这个规则就不成立了吗?
不是,这也是补码尾数规格化的依托。
因此,正小数的形式当然和原码一样:0.1xxxxxx…x,自然最大值就是0.1111111….1, 最小是0.10000….0
而负数是我们特别关注的:
1.0xxxxxx….x的形式,最大值是1.0111111…1, 最小值是1.000000….0为什么说原则是一样的?因为需要满足数据位最高位是1,那么在补码下,负数自然就是0了。
这还体现出一种pattern,即规格化的小数符号位和最高的数据位相反。
以上是必要的铺垫,这里最想说的是基数不为2的时候该怎样理解?
设浮点数阶的基数是8,尾数采用模4补码表示,试指出下面的数那个是规格化数。
A. 11.111000 B. 00.000111 C. 11.101010 D. 11.111101理解背后的逻辑后,就是非常简单的事情了。
基数是8,也即意味着用三位二进制位表示一个数。
还是那样,最高位必须不为0,这个说法有点变化,在基数为2的时候我们说不为0等价于为1,现在是基数为8了,最高位只要是1-7中的数字都可以,所以,只需要看数据的前三位是不是不为0即可!
加上这是补码表示的,很容易就锁定了,C是正确的!
以上。
-
浮点数的表示 问题
2015-06-16 15:40:02表示,偏置常数为64,右边24位(b8~b31)为6为16进制原码小数表示的尾数,采用规格化形式。若将十进 制数-265.625用该浮点数格式表示,则应表示为: 265=1 0000 1001 0.625=0.1010 265.625=IBM370的短浮点数格式中,总位数为32位,左边第一位(b0)为数符,随后七位(b1~b7)为阶码,用移码表示,偏置常数为64,右边24位(b8~b31)为6为16进制原码小数表示的尾数,采用规格化形式。若将十进制数-265.625用该浮点数格式表示,则应表示为:
解:
265=1 0000 1001
0.625=0.1010
265.625=1 0000 1001.1010=0.0001 0000 1001 1010 * 16^3
阶码=64+3=67
1,100 0011, 0001 0000 1001 1010 0000 0000
C3109A00H -
【考研】浮点数的表示
2020-05-18 20:53:01目录概述1、基本格式1.1、浮点数的表示1.1.1、使用定点数1.1.2、使用浮点数分析举例2、规格化2.1、左规和右规2.2、原码规格化的表示范围2.3、补码规格化的表示范围3、IEEE754标准(重点)3.1、表示形式3.2、常用的...目录
概述
1、基本格式
1.1、浮点数的表示
1.1.1、使用定点数
- 使用定点数表示纯小数和纯整数
1.1.2、使用浮点数
分析
- 使用浮点数:以适当的形式将比例因子表示在数据中,让小数点的位置根据需要浮动
- 使用科学记数法的思想
- 如图所示
- 前一部分是阶码,是定点整数,后面是尾数部分,是定点小数
- 位数的数值部分是0.几
- 阶码通常是补码或者移码表示,尾数通常用原码和补码表示
- 阶码E反映了浮点数的表示范围,以及小数点的实际位置
- M反应数值部分的位数和浮点数的精度
- 通过·阶码的改变,理论上就可以实现浮点数的浮动
- 浮点数的真值:r^E*M
- r约定了是2,E是阶码阶码,M是数值、
举例
a=0.01:1.1001
b=0.01:0.01001,阶码尾数均用补码表示,求ab的真值
解:a的阶码部分是2^1,尾数部分是-0.0111可以看作是-111右移了四个位置可以看作-7/16就是结果
b同理,但是要注意,b在一个字节的存储位上放不下,需要舍去最后一位,所以需要规格化2、规格化
2.1、左规和右规
- 规定尾数的最高位必须是一个有效值1
- 左规:将尾数左移一位,阶码减一
- 右规:当浮点数的运算出现尾数溢出(双符号位01,10(时,将尾数右移一位,阶码加一
2.2、原码规格化的表示范围
- M的绝对值在0.5到1之间
- 原码规格化后M的表示范围是0.10000–0.111111
- 原码规格化后负数地表示范围是:1.111111-1.100000
2.3、补码规格化的表示范围
- 补码规格化:正数的表示范围不变
- 负数:注意,因为要求真值的最高为必须是1,所以表示成补码之后,最高有效位一定是0,则最小1.000000=-1,最大:1.0111111=-(1/2+2^-n)
上图时如果用三位表示的话,正数和负数补码的区别,注意感受不同
这是变成小数的形式
可以看到,太大和太小都不可以
3、IEEE754标准(重点)
3.1、表示形式
- 三个部分:数符,阶码,尾数
- 阶码用移码表示,尾数用原码表示,隐藏表示最高数值为是1 ,所以不需要存储1
- 尾数xxxxx,则表示1.xxxxx
3.2、常用的形式
- 短浮点数float32位
- 长浮点数:double 64位
- 对应真值:
重要
记住
3.3、特殊规定
- E=M=0,真值位0
- E=0,M不等于0,是非规格数,真值:-1s乘以(0.M)乘以2-126(这是规定,记住就可以)
- 1<=E<=254时,真值正常
- E=255,全1时,,M不等于0时,非数值也是规定
- E=255,M=0时,无穷
3.4、表示范围
- 当E=1,M=0时,表示最小
- 当E差一个1全1时,M全1时最大
- 以下时绝对值的范围
3.6、相关资料
浮点数表示格式
在IEEE-754标准下,浮点格式主要分为四种类行,即单精度格式、双精度格式、扩展单精度格式和扩展双精度格式。其中32位单精度格式与64位双精度格式作为基础格式更为常用,扩展格式则有特殊目的,一般对用户透明。浮点格式参数
浮点格式可分为符号位s,指数位e以及尾数位f三部分。
其中真实的指数E相对于实际的指数有一个偏移量,所以E的值应该为e-Bias,Bias即为指数偏移量。这样做的好处是便于使用无符号数来代替有符号的真实指数。尾数f字段代表纯粹的小数,它的左侧即为小数点的位置。规格化数的隐藏位默认值为1,不在格式中表达。IEEE-754 标准浮点格式
在IEEE-754 标准下,浮点数一共分为:
NaN:即Not a Number。非数的指数位全部为1 同时尾数位不全为0。在此前提下,根据尾数位首位是否为1,NaN 还可以分为SNaN 和QNaN 两类。前者参与运算时将会发生异常。
无穷数:指数位全部为1 同时尾数位全为0。大。
规格化数:指数位不全为1 同时尾不全为0。此时浮点数的隐含位有效,其值为1。
非规格化数:指数位全为0 且尾数位不全为0。此时隐含位有效,值为0。另外需要注意,以单精度时为例,真实指数E 并非0-127=-127,而是-126,这样一来就与规格化下最小真实指数E=1-127=-126 达成统一,形成过度。
0 :指数位与尾数位都全为0,根据符号位决定正负。
IEEE-754 标准的浮点数表示浮点的舍入模式
在存储单元的物理限制下,无限精度的浮点数需要根据需求进行舍入操作,一般
可分为四类:1.最近舍入,即向距离最近的浮点数舍入,若存在两个同样接近的数,则选择偶数作为舍入值。
2.向零舍入,又称截断舍入,将多余的精度位截掉,即取舍入后绝对值较小的值。
3.正向舍入,也称正无穷舍入,即舍入后结果大于原值。
4.负向舍入:也称负无穷舍入,即舍入后结果小于原值。 -
【计组】2.3浮点数的表示和运算
2020-12-08 15:56:42原码、补码规格化形式区别 IEEE754标准 移码回顾 · 注:二进制加减法由于内存空间位数有限,所以会默认进行模运算;当机器数为8位时,将相当于加减法默认mod 8运算;所以上图中当偏置值绝对值小于真值绝对值且... -
-
三个字节二进制浮点的表示方法
2021-02-03 17:36:56二进制浮点操作数:用三个字节表示,第一个字节的最高位为数符,其余七位为阶码(补码形式),第二字节为尾数的高字节,第三字节为尾数的低字节,尾数用双字节纯小数(原码)来表示。当尾数的最高位为1时,便称为... -
浮点数加减法的运算步骤
2019-04-30 17:37:35其中MxM_xMx为该浮点数的尾数,一般为绝对值小于1的规格化的二进制小数,机器中多用原码(或补码)形式表示。ExE_xEx为该浮点数的阶码,一般为二进制整数,机器中多用移码(或补码)表示,给... -
浮点数的加减计算总结
2016-09-22 15:41:52尾数含一位数符共8位,补码表示,规格化。该浮点数所能表示的最大正数是?解答:首先,我们马上可以构想出补码最大时的样子,因为和原码一样,是0.1111111…1形式。 这里呢,尾数含数符共8位,所以是0.11111 -
【笔记】计算机的运算方法(一)
2018-03-25 00:40:57一、有符号数 ...浮点数的规格化 3.定点数和浮点数的比较 4.IEEE 754标准 一、有符号数 1.原码表示法 原码是机器数中最简单的一种表示形式,符号位为0表示正数,符号位为1表示... -
计算机组成原理——浮点数的加减法
2019-06-10 16:59:07其中Mx为该浮点数的尾数,一般为绝对值小于1的规格化的二进制小数,机器中多用原码(或补码)形式表示。Ex为该浮点数的阶码,一般为二进制整数,机器中多用移码(或补码)表示,给出的是一个指数的幂,而该指数的底常用2... -
第6章 计算机的运算方法(上) 测试
2020-04-25 20:47:43假设浮点数的表示形式如下图,阶码和尾数都用原码表示 并且m=4,n=10,用非规格化形式表示时,下列叙述正确的是:C A. 可以表示的最小正数为 2(-15)×2(-9) B. 可以表示的最大负数为 -2(-16)×2(-10) C. 可以... -
浮点型数据在内存中是怎么存储的
2012-12-12 19:38:49历史 为便于软件的移植,...该标准规定基数为2,阶码E用移码表示,尾数M用原码表示,根据二进制的规格化方法,数值的最高位总是1,该标准将这个1缺省存储,使得尾数表示范围比实际存储的多一位。IEEE754标准中有三种形 -
最终版唐朔飞-计算机组成原理习题答案.ppt
2020-04-16 23:13:3916设机器数字长为16位写出...6浮点数的格式为阶码6位含1位阶符尾数10位含1位数符分别写出其正数和负数的表示范围 7浮点数格式同6机器数采用补码规格化形式分别写出其对应的正数和负数的真值范围 最新文档 * 解1无符号整 -
操作系统习题和答案.ppt
2020-04-23 09:56:01设浮点数的格式为阶码6位移码包含一位符号位尾数6位原码包含一位符号位排列顺序为 则按上述浮点数的格式 1若数Z的浮点数的16进制形式为9F4H求Z的十进制的真值 2若X =-25/64Y =2.875则求 X和Y的规格化浮点数表示形式;... -
IBM370编码
2015-05-18 17:03:00题意:IBM370浮点数格式 总位数32 第一位符号位 随后7位是阶码,用移码表示,偏置常数为64 最后24位为6位十六进制原码小数表示的尾数,采用规格化形式 十进制数为-265.625...注意点:尾数是十六进制的规格化形式! ... -
【学习笔记】计算机组成原理第二章习题
2020-04-01 19:02:01对真值“0”表示形式唯一的机器数是( B )。 A. 原码 B. 移码和补码 C. 反码 D. 以上都不对 在规格化浮点数表示中,保持其他方面不变,将阶码部分的补码表示改为移码表示,将会使数的表示范围( C )。 A.增大 B.... -
计算机组成与结构 试题
2010-11-27 20:35:35一种短浮点数的字长共16位(二进制),从高位到低位分别是:符号1位,阶码7位(包括符号位),尾数8位。...(1)把这两个数分别表示成规格化浮点数形式。 (2)按照浮点数加法运算规则,计算这两个浮点数的和。 -
《程序员教程(第三版)》学习笔记——01.十进制浮点数转化为IEEE754标准单精度浮点数
2013-09-17 12:53:36工业标准IEEE754: 1985年IEEE(Institute of Electrical...P为阶码,通常用移码表示,M为尾数,用原码表示,根据二进制的规格化方法,最高数字位总是1,该标准将这个1缺省存储,使得尾数表示范围比实际存储的多一位。 -
【C++】十进制整数转二进制 十进制浮点数转IE754格式二进制
2020-11-08 16:00:35十进制整数转二进制 输入整数以补码形式显示 例如: input: 10 outout: 1010 正整数的补码为其原码,负数的补码为其模减去该负数的绝对值(模运算) 例如: ... 规格化阶码范围为0000 0001 (- -
2005-2009软件设计师历年真题
2010-05-18 19:20:10• 数的表示(原码、反码、补码、移码表示,整数和实数的机内表示,精度和溢出) • 非数值表示(字符和汉字表示、声音表示、图像表示) • 校验方法和校验码(奇偶校验码、海明校验码、循环冗余校验码) ... -
计算机组成原理本科复习题1
2010-06-17 21:25:23求:N1 ×N2 ,写出运算步骤及结果,积的尾数占4位,要规格化结果,用原码阵列乘法器求尾数之积。 2. (11分)已知某8位机的主存采用半导体存贮器,地址码为18位,若使用4K×4位RAM芯片组成该机所允许的最大主存...