16位浮点数,从高到低依次为阶符1位,阶码4位(原码)、数符1位、尾数10位(补码)?
- 已知某计算机用16位二进制数表示浮点数,由最高位至最低位依次为阶符1位、阶码3位(补码表示)
- 某计算机系统中,16位浮点数的表示格式如图1所示。其中阶码4位(含1位符号)
- 16位二进制的浮点数表示
- 浮点数阶码
已知某计算机用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时为正。