计算机系统概论 作业1


  1. 在所有由五个 $1$ 和三个 $0$ 组成的 8 位二进制整数 (补码形式) 中, 最小的数是 10001111, 最大的数是 01111100.
  2. 已知 $[X]_{补码}$=0x0043, $[Y]_{补码}$=0xCE50, 则 $[X+Y]_{补码}$= 0xCE93, $[X-Y]_{补码}$= 0x31F3. ($X$、$Y$ 的数据位宽均为 16 位, 计算结果用 16 进制的补码表示)
  3. 假设存在一种 16 位的浮点数表示, $exp$ 位数是 7, $frac$ 位数是 8, 符号位数是 1, 其所能表示的最大的非规格化数的 $exp$ 是 0000000, $frac$ 是 11111111; 250 (十进制数) 的 $exp$ 是 1000110, $frac$ 是 11110100. (请用 0、1 位串表示答案)
  4. 假设存在一种 9 位浮点数 (符合 IEEE 浮点数标准), 符号位数是 1, $exp$ 位数是 4, $frac$ 位数是 4. 其数值被表示为 $V = (-1)^S × M × 2^E$ 形式. 请在下表中填空.
    $Binary$: 该浮点数的 9 位二进制表示; $M$:表示为十进制数; $E$:表示为十进制整数;
    $Value$: 被表示的具体数值, 十进制数表示.
描述 Binary M E Value
5.0 010010100 1.25 2 5.0
最小的大于 0 浮点数 000000001 0.0625 -6 0.0009765625
  1. 给定相同的字长 (例如 32 位) , 能表示的定点数多还是浮点数多?

    答:

    • 能表示的定点数个数多.
    • 对32位浮点数而言, 如果exp位置全为1, 会产生 $\infty$ 与 $NaN$, 进而个数少于 $2^{32}$;
    • 而对32位定点数而言, 固定小数点都能产生 $2^{32}$ 个不一样的数.
    • 推广到其他字长, 这都是成立的.
    • 因此给定相同的字长, 能表示的定点数个数更多.
  2. 假设存在一种 16 位浮点数 (符合 IEEE 浮点数标准) , $exp$ 位数是 5, $frac$ 位数是 10, 符号位数是 1. 某同学对该格式的一个数 $x$ 执行了 (整数的) 按位右移操作, 得到了 80.5. 若右移操作按有符号数执行 (算术右移) , 原来的数可能是 不存在, 若右移操作按无符号数执行 (逻辑右移) , 原来的数可能是 -0.04736328125 或 -0.047393798828125 (列出所有情况或填入“不存在”, 数可以用小数或分数来表示, 必须精确).

  3. 使用不超过 4 次位运算或加减运算完成整数运算 $y = x * 85$ (允许引入临时变量, 不需考虑溢出的情况) .

    答:

    • $tmp1 = x << 2$ ( $tmp1 = x * 4$ )
    • $tmp2 = tmp1 + x$ ( $tmp2 = x * 5$ )
    • $tmp3 = tmp2 << 4$ ( $tmp3 = x * 80$ )
    • $y = tmp3 + tmp2$ ( $y = x * 85$ )

文章作者: Chengsx
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Chengsx !
  目录