Math 如何计算负数减去正数加上有符号10';补语是什么?

Math 如何计算负数减去正数加上有符号10';补语是什么?,math,complement,Math,Complement,(-638)-(+185) 我试着用10的补码来解它。 所以它导致10的comp(362)+10的comp(815)=1177 但在那之后我不知道该怎么办。 我学会了如果第二个值大于第一个值,我必须放弃末端进位。 如果不是的话,我必须用补码来改变结果,然后把负数放在前面。 但我认为只有一个数字需要补充 这个问题需要我两者兼而有之 总结一下我的问题。当两个数字都需要10的补时,如何计算? 有符号的10的补码和只有10的补码有什么区别?你的错误:取185的补码 我们用负数的补码来表示它们,只使用数字

(-638)-(+185) 我试着用10的补码来解它。 所以它导致10的comp(362)+10的comp(815)=1177

但在那之后我不知道该怎么办。 我学会了如果第二个值大于第一个值,我必须放弃末端进位。 如果不是的话,我必须用补码来改变结果,然后把负数放在前面。 但我认为只有一个数字需要补充

这个问题需要我两者兼而有之

总结一下我的问题。当两个数字都需要10的补时,如何计算? 有符号的10的补码和只有10的补码有什么区别?

你的错误:取185的补码 我们用负数的补码来表示它们,只使用数字,不使用减号。我们不需要求非负数的补码。您应该执行的“加法”是362+185

有符号与无符号 “signed”只是表示可以表示负数。“unsigned”表示你不能。如果它是无符号的,那么就根本不需要“10的补码”。因此,每当你读到“10的补码”时,你可以假设它是有符号的

请注意,10的补码只有在您预定义了一个要表示的整数范围时才有意义。此范围对应于多个数字

在你的例子中,我可以猜数字的数量是3,因此范围是[-500,+499]。当然,如果你选择更多的数字和更大的范围,比如[-500000,+499999]的6位数字,你最终会得到相同的结果

三位无减号算术 让我们假设范围是[-500499]。为了用三位数字来表示这个范围内的负数,我们要加上1000。因此,您的数字-638将表示为
362
(因为362=-638+1000)。数字185已经是非负的,因此我们将它表示为
185

然后我们可以执行添加:

 362
+185
====
 547
 999362
+000185
=======
 999547
结果是
547
,表示负数。它表示的负数是547-1000=-453

六位无减号算术 假设范围是[-500000499999]。要用六位数字表示这个范围内的负数,并且不使用减号,我们要加上1000000。因此,您的数字-638将表示为
999362
(因为362=-638+1000000)。数字185已经是非负的,因此我们将它表示为
000185

然后我们可以执行添加:

 362
+185
====
 547
 999362
+000185
=======
 999547

结果是
999547
,表示负数。它代表的负数是999547-1000000=-453。

非常感谢您抽出时间详细解释。但是,我想知道的是。。答案不是应该是-823吗?如果是(-638)+(+185),我就知道你的答案了。@HHKim哦,你是对的。我不知道这是一个减法。