二进制数 - 15 和 -1 之间的差异

Binary Numbers - Difference between 15 and -1

我在学习二进制数和 2 的补码。

假设我有二进制数 1111。这是 15,但也是 -1(从 2 的补码方法得到)。

你能解释一下我如何判断它是 15 还是 -1 吗?

取决于您使用的数据类型。大多数编程语言都提供有符号和无符号类型。

如果没有数据类型,一系列位就毫无意义。例如。一个无符号的 Int16 将只包含最多 16 位的正数,而一个有符号的 Int16 也将包含负数(当然,负数较少)。

如果寄存器是4位2的补码,那么最大取值范围是-8到7,所以15是不可能的。要表示 15,必须使用无符号寄存器。

这是一个定义问题。如果我写 10,您可以读出十(十进制)或二(二进制)或一大堆其他数字,具体取决于数字系统。如果您不知道我使用的是哪个系统,您就无法理解我的意思。在您的情况下,15 是无符号二进制系统中的答案,-1 是 2 的补码二进制系统中的答案。