Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 减去两个';补语_Math_Binary_Twos Complement - Fatal编程技术网

Math 减去两个';补语

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=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=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位但正确@时辰