将十进制数 -3 / 8 表示成浮点数规格化形式。
微机原理,不涉及 IEEE。
其中阶符阶码共 4 位(用补码表示),尾符尾数共 7 位(用补码表示)。
已知答案是:1111 1010000
想知道一步步的过程。
题目链接:http://zhidao.baidu.com/question/303177336062490444.html
-------------------------
微机原理里面的浮点数,其格式与 IEEE 标准不同。
题目所要求的 11 位浮点数,其格式是:F J J J F W W W W W W。
与 IEEE 的区别有两处:
阶码是补码 (不是移码)。
尾数是纯小数 (隐含的整数部分为 0)。
即尾数为:F (零点) W W W W W W,是个补码形式的纯小数。
--------
先求尾数:
十进制数字 3,二进制就是 11。
除以 2,就是 1.1、除以 4,就是 0.11。
除以 8,就是 0.011,这就是 3 / 8。
把小数点右移一位,就是:(0.)11,位数不够,就在后面添上 0,即 (0.)110000。
这就符合微机原理格式要求了。
(记住了:在这里,把小数点右移了一位,等一会,讨论阶码的时候,就必须左移一位。)
又因为-3 / 8 是负数,那么,把它再写成补码,符合微机原理的尾数,就是:1010000。
--------
再求阶码:
前面已经说过,小数点要左移一位。那么阶码应该是-1。
其四位二进制数形式即为 1111。
所以,-3 / 8 的浮点数就是:1111 1010000。
--------
做而论道回答了这个问题之后,百度知道显示:...违规...。
不给大家显示,申诉了也没有反应。
不用理它们,就写在这里吧。
========================
另一个问题:http://zhidao.baidu.com/question/582576160722151525.html
浮点数规格化 B = -(0.101011)* 2^-10,阶码 4 位,用移码表示(偏移值 8),
为什么阶码表示成 0110 ?
做而论道回答如下:
...2^-10,阶码 4 位,...
这里面的 10,如果是十进制,就超出了 4 位数的范围了。
它应该是二进制数。
那么,-10,就是十进制的-2,其四位补码就是:1110。
再用移码表示(偏移值8,即二进制数 1000),阶码就是:0110。