软考-软件设计:浮点小数的表示

需要掌握:

  1. 软考-软件设计:n位二进制定点小数,原码、反码、补码、移码的取值范围

浮点数表示

浮点数N = 尾数 * 基数^指数

解释

  • 尾数:一般为小数,一般用 补码 表示
  • 基数:在计算机中,默认表示 2
  • 指数:也称为 阶码、阶数,一般为整数,一般用 移码 表示

特点

  1. 阶码的位数 决定数的表示 范围,位数 越多范围越大
  2. 尾数的位数 决定数的有效 精度,位数 越多精度越高

比较两个浮点小数运算过程

对阶 > 尾数计算 > 结果格式化

解释:

  • 对阶:让两个数的指数(阶码)相等。
    • 对阶时,小数向大数看齐
    • 对阶是通过较小数的 尾数右移 实现的

例子

某种机器的浮点数表示格式如下(允许非规格化表示)

阶符1位    阶码4位   数符1位   尾数10位

若阶码以补码表示,尾数以原码表示,则

1 0001 0 0000000001

表示的浮点数是多少

“允许非规格化表示” 是什么意思

默认前面是尾数、后面是阶码

“允许非规格化表示”,前面是阶码、后面是尾数

展示数据

阶符1位     阶码4位(补码)  数符1位    尾数10位(原码)
1(负数)   0001            0(正数)  0000000001

将阶码 转 十进制

阶码4位(补码):0001  // 默认为整数
反码是:        0000
原码是:        1111
换算十进制:    15  // 注意:阶符是1,表示负数
最终结果:      -15

将尾数 转 十进制

尾数10位:     0000000001  // 默认为小数
换算十进制:   2^-10

结果

浮点数是:

2^-10 * 2^-15

原文出处:/show_1GWrWRNNLRb.html