如何使用二进制补码添加十六进制数?

How to add hex numbers using two's complement?

我正在本地大学学习计算机科学初级课程,此作业的一部分要求我将十六进制数转换为其等效的十六进制数。我们使用在线基本计算机来执行此操作,该计算机接受特定输入特定输入。

所以根据我的附录,当我输入某个代码时,它应该 "add the bit patterns [ED] and [09] as though they were two's complement representations." 当我将代码输入系统时,它会给出 F6 的输出...但我不知道它是如何到达那里的。

我了解如何添加二进制补码,我了解如何添加两个普通的十六进制数,但是当我添加 09(应该是二进制补码 9 的十六进制版本)和 ED(应该是是二进制补码的十六进制版本 -19),如果添加二进制补码,我得到 10,如果添加十六进制,我得到 162。

好吧,你只是把自己弄糊涂了。停止转换。这都是十六进制的:

  ED
+ 09
----

D + 9 = 16    // keep the 6 and carry the 1

  1
  ED
+ 09
----
   6

1 + E = F

  ED
+ 09
----
  F6

关于第一步,使用 0x 表示十六进制数字,这样我们就不会迷路:

0xD = 13,
0x9 = 9, 
13 + 9 = 22, 
22 = 0x16

因此

0xD + 0x9 = 0x16

必须 运行,但在我离开之前再快速编辑一下。

D + 1 = E
D + 2 = F
D + 3 = 10  (remember, this is hex, so this is not "ten")
D + 4 = 11
...
D + 9 = 16