Math 减去两个';补语
B=01010101 A=10101010 它们已经是2的补码了,我必须做B-A。 我不知道该怎么办,因为如果A有一个1,这意味着它是一个负数。然后操作是B-(-A)或B+A 但是B+A=11111111(二进制的000000001),这似乎不正确Math 减去两个';补语,math,binary,twos-complement,Math,Binary,Twos Complement,B=01010101 A=10101010 它们已经是2的补码了,我必须做B-A。 我不知道该怎么办,因为如果A有一个1,这意味着它是一个负数。然后操作是B-(-A)或B+A 但是B+A=11111111(二进制的000000001),这似乎不正确 也许我没有“明白”,但我真的不知道我应该做什么。你的任务是找到B-A。如果A是负数,那么A=-C,在这种情况下,C=86。 换句话说,B-A=B+C(不是B+A)。 您只需从A计算C(反转所有单个位,然后添加一个:01010101+1=0101011
也许我没有“明白”,但我真的不知道我应该做什么。你的任务是找到B-A。如果A是负数,那么A=-C,在这种情况下,C=86。 换句话说,B-A=B+C(不是B+A)。 您只需从A计算C(反转所有单个位,然后添加一个:01010101+1=01010110),然后将B和计算出的数字相加: 考虑到A和B都是二者的补充: 我想答案是10101011或-85!! 原因如下:
01010101 (-171)
+ 01010110 (86)
**= 10101011 (-85)**
B=85,A=86。A+B=-1。A-B=A+~B+1=?从一些较小的示例(例如3位长)开始,看看会发生什么。或者用一个8位有符号值,-256+171=-85I刚刚说到这一点。很高兴看到我终于想对了。问题是这个练习需要一个8位数字,所以我不确定哪一个是答案-85是8位但错误,171是9位但正确@时辰