Binary -3+-3=-2/2';补语
使用4位数字计算2的补码中的-3+-3,我的计算得到-2 二进制中的3是0011 因为两个数字都是负数,所以通过翻转所有数字来实现两个一的补码 1100和1100 加上一个,因为我们使用的是二的补码 1101+1101= 11010 第一个是溢出的,在两个的补码中被丢弃。剩下的是1010,在十进制中是负2。有人能解释一下在这个过程中做错了什么吗Binary -3+-3=-2/2';补语,binary,addition,twos-complement,Binary,Addition,Twos Complement,使用4位数字计算2的补码中的-3+-3,我的计算得到-2 二进制中的3是0011 因为两个数字都是负数,所以通过翻转所有数字来实现两个一的补码 1100和1100 加上一个,因为我们使用的是二的补码 1101+1101= 11010 第一个是溢出的,在两个的补码中被丢弃。剩下的是1010,在十进制中是负2。有人能解释一下在这个过程中做错了什么吗 编辑 我的问题似乎更具体地说是如何解释2的补码计算结果。我认为结果如下: 结果是1010。 在我的世界里,第一位是符号位,表示数字是负数。 以下0表示
编辑 我的问题似乎更具体地说是如何解释2的补码计算结果。我认为结果如下: 结果是1010。 在我的世界里,第一位是符号位,表示数字是负数。 以下0表示存在-4中的0 以下1表示存在-2中的1个 以下0表示存在-1中的0 因此,我将其解释为结果为-2 第一个是溢出 如您在此处所暗示的,如果您将存储限制为单个Nyble,那么使用两个Nyble的补码,您可以表示范围
-8
到7
的值
-2
将是0b1110
,这不是您所拥有的<代码>-6确实是0b1010
,这是正确的总和。结果是正确的,您只是把它解释错了。当您对2的补码中的数字执行算术运算时,结果也是2的补码。所以,从负数到正数的转换,和原始数从正数到负数的转换是一样的
给定4位二进制值1010
,首先翻转一个补码的位以获得0101
,然后为两个补码添加1以获得0110
0110
是6,因此1010
是-6。没有任何错误1010
是-6
,这是正确答案1110
是-2
。你能解释一下为什么会这样,并作为答案发布吗?在我的头脑中,第一位是符号位,010是十进制的2?根据你的逻辑,1101
应该是-5
,但你自己说它是-3
。你能详细说明一下将计算结果转换为十进制的规则吗,我将它标记为答案。“看来有一点我还是不太明白。”乔纳斯格伦贝克:我想我说得很清楚。你对哪一部分感到困惑?我把答案解释为带符号位的普通二进制数。所以,第一个1表示它是负的,下面的0表示-4中有0个,下面的1表示-2中有1个,最后的0表示-1中有0个:)@JonasGrønbek是的,没错。@JonasGrønbek这只是告诉你正等价物是什么,这样你就知道你在读什么了0110
是6,所以要得到-6,需要进行两次补码转换:0110
->1001
->1010
,这就是你得到的。转换是双向的。