1

我试图理解为什么我的计算给出的答案与书中不同。

问题问如果 A 和 B 代表无符号 12 位八进制数,它们的总和是多少?

A=3174 and B=0522

以下是我解决问题的方法:

1. 3174 octal = 011001111100 (unsigned 12 bits)
   0522 octal = 000101010010 (unsigned 12 bits) 
          sum = 011111001110 (unsigned 12 bits)

第二种方法我直接添加了两个八进制数,无需转换为二进制

3174 octal+0522 octal= 3716 octal (answer must be in octal). 

但我不明白这本书是如何让 7620 感到困惑的 // 这是在 MIPS 编程中

4

1 回答 1

3

这是计算机组织和设计的练习 3.1.1 ,修订版4版

你的数学是正确的。 使用 Wolfram Alpha 进行检查。

3174 8 + 0522 8 = 3716 8

这本书的解决方案指南说答案是 7620。(这就是我可以通过scribd 上第68 页的模糊部分得出的结论。)

在该练习的表中的四个数字中,无论您将表中的数字解释为八进制还是十进制,都没有一对总和为 7620 8或 7620 10 。解决方案指南要么是错误的,要么是对问题的解释非常模糊。

这是我用来验证的 Mathematica 代码:

inputs = {3174, 0522, 4165, 1654, 8^^3174, 8^^0522, 8^^4165, 8^^1654}
Table[{i + j, BaseForm[i + j, 8]}, {i, inputs}, {j, inputs}] // Flatten // Sort // TableForm
于 2013-11-14T04:38:46.397 回答