十六进制数的减法问题(不懂勿答)

例如72H=01110010,35H=00110101,72H减35H等于多少,其中涉及到反码和补码,我不知道怎样计算,知道的请告诉我,越详细越好,若答得好,我追加20分... 例如72H=0111 0010,35H=0011 0101,72H减35H等于多少,其中涉及到反码和补码,我不知道怎样计算,知道的请告诉我,越详细越好,若答得好,我追加20分,不懂勿答!
我补充一下,我所说的问题是如何在计算机汇编语言中实现,计算机只有加法没有减法,好象要用到反码和补码,我就是不知道怎么用.
展开
 我来答
沙里波特
2021-03-22 · TA获得超过5248个赞
知道大有可为答主
回答量:1.1万
采纳率:95%
帮助的人:633万
展开全部

开始学习补码的时候,都要“误导”你一下,说:计算机没有减法器

但是,在 CPU 内部,并不缺少减法器。

任何的 CPU,都是可以做减法的。

80x86 CPU 的汇编语言中,就有【减法指令】,直接可以实现,两个十六进制数相减。

并不需要借助原码反码等等。

用汇编语言编程时,也不需要用补码,你直接使用(带有正负号的)数字,即可。

同样,原码反码,也根本就没有用。

呵呵,学习补码,都上当了吧!

当幸福来串门
2007-11-22 · TA获得超过126个赞
知道答主
回答量:86
采纳率:0%
帮助的人:0
展开全部
其实你基本已经搞定了 只需要2进制相减 再转化为16进制

0111 0010
-0011 0101
——————
0011 1101

转化后为 3dH
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sbdx
2007-11-22 · TA获得超过381个赞
知道小有建树答主
回答量:164
采纳率:0%
帮助的人:135万
展开全部
72-35=3D
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
s903s
推荐于2018-03-20 · TA获得超过2180个赞
知道小有建树答主
回答量:424
采纳率:0%
帮助的人:0
展开全部
如果只是手工相减,完全可以借鉴十进制数的减法,不用涉及反码补码之类的概念。唯一不同的是,十进制减法不够减时,上位借1下位加10,而十六进制则是上位借1下位加16。
例如72H减35H,2-5,不够减。上位借1作16,2-5就变成了16+2-5=13, 即D; 上位被借了1,所以就是6-3=3,因此结果是3DH.
如果用转换的方法,转换成二进制相减再转回十六进制,还不如转换成十进制相减再转回十六进制容易。
>计算机只有加法没有减法,好象要用到反码和补码.
负数用补码表示后,可以和正数一样来处理。这样,运算器里只需要一个加法器就可以了,不必再配一个减法器。
具体到所举的例子72H-35H, 用补码运算, 就是(72)[补码] + (-35)[补码]。
以8位机为例:
72H = 0111 0010, 正数的补码与原码相同,还是 01110010;
-35H = -0011 0101, 负数的补码是对反码加一。先逐位求反,得11001010, 加1得11001011;
01110010
11001011
----------+
00111101
注意相加的结果应该是100111101, 但在八位机里(8模系统)放不下9位数,只留后8位,所以结果就是00111101,即3DH.
当然相加的结果也是补码。现在最高位是0,所以结果是正数。如果高位为1,那就是负数,转回十进制时要特别注意。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式