第2章 参考答案
2写出下列十进制数的原码、反码、补码和移码表示(用8位二进制数)。如果是小数,则用定点小数表示;若为整数,则用定点整数表示。其中MSB是最高位(符号位),LSB是最低位。
(1)-1 (2) -38/64
解:
(1)-1=(-0000001)2
原码:反码:
补码:移码:
(2)-38/64=-0.59375=(-0.1001100)2
或-38/64=-(32+4+2)*2-6=-(100110)*2-6=(-0.1001100)2
原码: 1.1001100
反码: 1.0110011
补码: 1.0110100
移码: 0.0110100
注:-1如果看成小数,那么只有补码和移码能表示得到,定点小数-1的补码为:1.0000000
此例类似于8位定点整数的最小值-128补码
3 有一字长为32位的浮点数,符号位1位;阶码8位,用移码表示;尾数23位,用补码表示;基数为2.请写出:(1)最大数的二进制表示,(2)最小数的二进制表示,(3)规格化数所能表示的数的范围。
解:(题目没有指定格式的情况下,用一般表示法做)
(1)最大数的二进制表示:011111111111111111111111
(2)最小数的二进制表示:100000000000000000000000
(1) (2)
(3)规格化最大正数:011111111111111111111111
规格化最小正数:010000000000000000000000
规格化最大负数:101111111111111111111111
规格化最小负数:100000000000000000000000
规格化数的表示的数的范围为:
下面补充IEEE 754的规格化浮点数表示范围:
IEEE 754的尾数采用1.M的形式,原码表示;阶e=E-127 (相对于一般表示法的e=E-128,人为的加了1);并且最大的阶和最小的阶用去作为特殊用途。
规格化最大正数:011111111111111111111111
规格化最小正数:000000000000000000000000
规格化最大负数:100000000000000000000000
规格化最小负数:111111111111111111111111
规格化数的表示的数的范围为:
4. 将下列十进制数表示成浮点规格化数。/128 (2) -/128
(1)X=(25/128)10=(11001.×2 _7)2 =(0.0011001)2 =1.1001×2 -3
S=0 E=-3+127=124 M=1001
IEEE754标准的32位浮点规格化数X=(-25/128)10=(-11001.×2 _7)2 =(-0.0011001)2 =-(1.1001×2 -3)
S=1 E=-3+127=124 M=1001
IEEE754标准的32位浮点规格化数5. 已知X和Y, 用变形补码计算X+Y, 同时指出运算结果是否溢出。(1) x=11011 y=00011
解: [X]补=0011011, [Y]补=0000011
[X+Y]补=[X]补+ [Y]补
[X]补 0011011
+ [Y]补 0000011
------------------------
[X+Y]补 0011110
符号位为00,结果无溢出
X+Y=11110
6. 已知X和Y, 用变形补码计算X-Y, 同时指出运算结果是否溢出。(1) x=11011 y=-11111
解:[X]补=0011011, [Y]补=1100001,[-Y]补=0011111
[X+Y]补=[X]补+ [-Y]补
[X]补 0011011
+ [-Y]补 0011111
------------------------
[X-Y]补 0111010
符号位为01,结果溢出
X-Y=11010
7. 用阵列乘法器计算X×Y。(1)X=11011