二进制数 - 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 的补码二进制系统中的答案。
我在学习二进制数和 2 的补码。
假设我有二进制数 1111。这是 15,但也是 -1(从 2 的补码方法得到)。
你能解释一下我如何判断它是 15 还是 -1 吗?
取决于您使用的数据类型。大多数编程语言都提供有符号和无符号类型。
如果没有数据类型,一系列位就毫无意义。例如。一个无符号的 Int16 将只包含最多 16 位的正数,而一个有符号的 Int16 也将包含负数(当然,负数较少)。
如果寄存器是4位2的补码,那么最大取值范围是-8到7,所以15是不可能的。要表示 15,必须使用无符号寄存器。
这是一个定义问题。如果我写 10,您可以读出十(十进制)或二(二进制)或一大堆其他数字,具体取决于数字系统。如果您不知道我使用的是哪个系统,您就无法理解我的意思。在您的情况下,15 是无符号二进制系统中的答案,-1 是 2 的补码二进制系统中的答案。