我正在当地大学学习计算机科学课程,其中一个部分要求我将十六进制数转换为十六进制数。我们使用在线基本计算机来执行特定输入的特定输入。
所以根据我的附录,当我输入某个代码时,它应该“添加位模式[ED]和[09],就像它们是两个补码表示一样。”当我在系统中键入代码时,它会输出F6 ......但我不知道它是如何实现的。
我理解如何添加两个补码工作,我理解如何添加两个正常的十六进制数,但是当我添加09(应该是二进制补码9的十六进制版本)和ED(应该是二进制补码的十六进制版本-19),如果加上二进制补码,我得到10,如果用十六进制加,我得到162。
答案 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