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