计算机组成浮点数补码规格化负数表示范围

推理:关于浮点数的表示与运算章节中,补码规格化后的负数所能表示的范围

一、记住形式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 是表示负得最多的数(即最小的负数)

  • 53
    点赞
  • 134
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
1. 变形补码加减运算: 变形补码是一种用于表示负数的二进制编码方式。在进行加减运算时,需要先将被加数和加数转换为变形补码,然后进行运算,最后将结果转换为原码。 举个例子: 假设需要计算 -5 + 3 的结果,步骤如下: - 将 -5 转换为变形补码:首先将 5 转换为二进制数 00000101,然后按位取反得到 11111010,最后将结果加 1 得到变形补码 11111011。 - 将 3 转换为变形补码:3 的二进制表示为 00000011,因此它的变形补码和原码相同,都是 00000011。 - 进行加法运算:将两个变形补码相加,得到 11111110。 - 将结果转换为原码:将 11111110 转换为原码,首先减去 1 得到 11111101,然后按位取反得到 00000010,最后加上符号位得到 -2,即 -5 + 3 = -2。 2. 浮点数规格化表示浮点数规格化表示是指将一个浮点数表示为一个带有指数和尾数的定点数的形式。其中,指数部分表示浮点数的位移量,尾数部分表示浮点数的有效数字。规格化表示的目的是为了方便进行浮点数的比较和计算。 举个例子: 假设需要表示浮点数 0.0125,它可以表示为 1.25 * 10^-2 的形式。将这个数表示规格化形式需要进行以下步骤: - 将 1.25 转换为二进制数:1.25 的二进制表示为 1.01。 - 将指数部分表示为二进制数:10^-2 的指数部分为 00000010。 - 在尾数部分前加上一个隐含的 1,得到 1.01。 - 将尾数部分向左移动两位,得到 101。 - 将指数部分和尾数部分拼接起来,得到规格化表示:0 00000010 101。其中,第一位表示符号位,0 表示正数。指数部分为 00000010,尾数部分为 101。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值