【发布时间】:2015-07-17 10:17:33
【问题描述】:
我目前正在尝试弄清楚如何将二进制补码十六进制正确转换为其以 10 为底的等效值。我们得到了一个汇编语言程序,它可以加减 32 位整数,并且需要获取寄存器的值并进行转换。
这是我尝试过的,但是,我的教授说我在最终计算中犯了一个严重错误,我不知道是什么。
这里是寄存器 EAX 值:FFFC0888
然后我将它从二进制补码十六进制转换为十六进制: FFFC0888 -> 0003F778
最后将十六进制转换为十进制。 0003F778 = (0 X 16^7) + (0 X 16^6) + (0 X 16^5) + (3 X 16^4) + (15 X 16^3) + (7 X 16^2) + (7 X 16^1) + (8 X 16^0) = 0+0+0+196608+61440+1792+112+8= 259960
我对 259960 的最终答案不正确,有人可以帮助我了解我做错了什么吗?谢谢!
【问题讨论】:
-
是因为你没有提到答案为 -259960 吗?
标签: assembly hex decimal type-conversion base