【发布时间】:2016-03-31 02:34:36
【问题描述】:
我大致了解 2 的补码的概念。将值转换为 2 的补码进行减法时,只需将数字的每个数字取反即可得到 1 的补码并加 1。当以二进制计算 2-2 之类的结果时,首先将 -2 转换为 2 的补码,(我喜欢使用 4 位表示)0010 变成 1101,然后变成 1110。然后你评估 0010 + 1110 并得到 0000,溢出的 1 被截断。
但是,像 2-3 这样的问题呢?所以我做了同样的操作。 2 是 0010,3 (0011) 的 2 的补码是 1101。所以 0010 + 1101 导致 1111 并且没有溢出。结果是 15。15 不是负数 1。我是否错过了其他网站和来源忽略提及的关于 2 的补码如何工作的关键点?
【问题讨论】:
-
2 的补码中的 -1 是什么?
-
所以我想我的问题不够具体。所以这意味着任何时候我做减法,结果都将是 2 的补码,然后必须再次进行 2 的补码运算才能接收无符号二进制表示?
标签: binary subtraction twos-complement