【发布时间】:2013-01-20 21:54:55
【问题描述】:
我需要帮助使用 2 表示的二进制减去每个数字使用 5 位:
1) -9 -7 = ?有溢出吗?
-9 = 01001(2 的补码 = 10111)和 -7 = 00111(2 的补码 = 11001)
现在我们需要添加,因为我们使用的是 2 的补码
10111 +11001 = 100000 但是这个答案没有意义。另外,我假设有溢出,因为答案中有超过 5 位。
2) 6 - 10,与之前相同的过程。负二进制数对我来说没有意义
【问题讨论】:
-
这技术上不是编程问题。
-
预期的答案是什么?它将如何在 2s 补码中表示?它符合提供的数字吗?
-
使用 8 位而不是 5 位,以避免混淆。这种方法肯定会有所帮助。
-9(binary) : 0000 1001&-9(2's complement) : 1111 0111。-7(binary) : 0000 0111&-7(2's complement) : 1111 1001。现在添加这两个:1111 0111 +1111 1001将产生1作为进位和1111 0000作为输出。1111 0000中最左边的1,表示输出为-(negative)。所以现在取输出的补码并将1添加到它。那是你的二进制答案。您的问题可以推断为:(-9)-(+7)。所以你不必浪费时间去推断-7的2的补码。
标签: binary subtraction twos-complement