我有一些真实的数据 . 例如 +2 和 -3 . 这些数据以2位补码不动点表示,具有4位二进制值,其中MSB表示符号位,小数位数为零 .
+2
-3
所以2 = 0 010
-3 = 1101
添加这两个数字是 (+2) + (-3)=-1
(+2) + (-3)=-1
(0010)+(1101)=(1111)
但是在减法的情况下 (+2)-(-3) 我该怎么办?
(+2)-(-3)
是否需要再次使用 1101 (-3) 的两个补码并添加 0010 ?
1101 (-3)
0010
您可以在二进制文件中评估 -(-3) ,而不是简单地将其与其他值相加 .
-(-3)
使用二进制补码,计算数字的相反值非常简单:只需将NOT二进制运算应用于除了较低有效位之外的每个数字 . 下面的等式使用波浪号来表示单个位的NOT运算,并假设处理由n位表示的整数(在您的示例中为 n = 4 ):
n = 4
在您的示例中(使用非正式表示法): -(-3) = -(1101) = 0011
-(-3) = -(1101) = 0011
1 回答
您可以在二进制文件中评估
-(-3)
,而不是简单地将其与其他值相加 .使用二进制补码,计算数字的相反值非常简单:只需将NOT二进制运算应用于除了较低有效位之外的每个数字 . 下面的等式使用波浪号来表示单个位的NOT运算,并假设处理由n位表示的整数(在您的示例中为
n = 4
):在您的示例中(使用非正式表示法):
-(-3) = -(1101) = 0011