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

时间:2015-10-24 19:56:03

标签: binary hex twos-complement

我正在当地大学学习计算机科学课程,其中一个部分要求我将十六进制数转换为十六进制数。我们使用在线基本计算机来执行特定输入的特定输入。

所以根据我的附录,当我输入某个代码时,它应该“添加位模式[ED]和[09],就像它们是两个补码表示一样。”当我在系统中键入代码时,它会输出F6 ......但我不知道它是如何实现的。

我理解如何添加两个补码工作,我理解如何添加两个正常的十六进制数,但是当我添加09(应该是二进制补码9的十六进制版本)和ED(应该是二进制补码的十六进制版本-19),如果加上二进制补码,我得到10,如果用十六进制加,我得到162。

1 个答案:

答案 0 :(得分:1)

好的,你只是让自己感到困惑。停止转换。这都是十六进制的:

  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