16位浮点数,从高到低依次为阶符1位,阶码4位(原码)、数符1位、尾数10位(补码)?

130℃ BETHANY

16位浮点数,从高到低依次为阶符1位,阶码4位(原码)、数符1位、尾数10位(补码)?

已知某计算机用16位二进制数表示浮点数,由最高位至最低位依次为阶符1位、阶码3位(补码表示)

首先补明确一下:阶数是整数,补码表示;尾数是小数,原码表示。

由题可知,阶数补码为1011,阶数即-5;尾数原码为110000000000,尾数即二进制(-0.10000000000B)=十进制(-1/2)。所以真值为-(1/2)×2的(一5)次方,即-1/64,选A。

某计算机系统中,16位浮点数的表示格式如图1所示。其中阶码4位(含1位符号)

阶码为1110:对应复值二进制制补码为0110b,十进制为6

尾数为0010 1000 0000,即去掉首位符号为2113后值为5261:41020.010 1000 0000

将尾数的小数点右移位后,值为0010 100.0 0000,对应二进1653制为:10100,十进制为:20

16位二进制的浮点数表示

阶符1位、阶码3位(补码表示)、数符1位、尾数11位(原码表示),则

1 011 1 100 0000 0000

其真值为:

指数为-5 尾数为1.10000000000

所以,真值为-1.1*2^(-5)=-0.000011 二进制

十进制为2^(-5)+2^(-6)

浮点数阶码

1   3位阶码要加11 十进制3,11+11=110。

2    说实话=号前面那个表示很不规范应该是错误的,不过=号后面那个数是13.0你可以自检一下。

3   正确写法是:01001010×2²=01101010。

4  (以二进制理解小数部分的话)0.1010×2²=00100100×2²=01000100。

5   你那道原题的思路是这样的。

6   0.1010 小数尾码 1010, 0.几转码要左移1,再×2次方,要+2,11+1+10=110;这一系列思维短路看似正确,造成了整体的错误。明白就好,千万别学这种思路。

浮点数0110110001011100阶码4位,尾数位12位,表示十进制多少?

1   0110110001011100只有16位,所以这个数没有给出符号位,其值就可正可负。

2   前4位0110是阶码,按规定是用移码表示的,它的真值是0110-111=-1。

3  后面12位按规则其值是1+0.110001011100=1.110001011100。

4   阶码值是-1,所以要将尾数的小数点要向左移1位才是真值,即真值为0.1110001011100;

化成十进制为如下。

5   0.1110001011100

=1x2(-1)+1x2(-2)+1x2(-3)+1x2(-7) +1x2(-9) +1x2(-10) +1x2(-11)

=0.5 +0.25 +0.125 +0.0078125+0.001953125+0.0009765625+0.00048828125

=0.88623046875(可正可负)。

6   如果在最高位前添1位符号位,则符号位为1是为负,为0时为正。

TAG: 补码 尾数