Binary 为什么在做二进制减法时使用2的赞美词?

Binary 为什么在做二进制减法时使用2的赞美词?,binary,Binary,嗨,伙计们,我只是对二进制减法有点困惑。我有以下疑问: 1) Why not just subtract normally(subtracting two binary number without converting to any other form) using binary numbers? 2) Why cant we use singed numbers to subtract, why wont it work? 3) Why is 2's compliment used?

嗨,伙计们,我只是对二进制减法有点困惑。我有以下疑问:

1) Why not just subtract normally(subtracting two binary number without converting to any other form) using binary numbers? 
2) Why cant we use singed numbers to subtract, why wont it work? 
3) Why is 2's compliment used?

2s补码是将数字表示为负数的一种方法。例如,通过将0011转换为2s补码,可以得到1101。当你把二者相加时,你就得到了正确的答案,用目前的硬件,计算机很容易计算得到

例如,01004-00113需要一个减法硬件,但0010+1101二者的0011补码得到1111。2补足得到0001,这是正确的答案

在设计处理器时,您可以使用只做加法的同一个ALU,将第二个数字转换为2s补码,这与加法相比微不足道,并有效地将其作为自身的负数,从而重用一个加法组件,而不是以其他方式使第二个组件进行减法


基本上,当给定x时,2s补码是表示-x的保证方式。添加-x可以更好地利用加法硬件。

它与如何表示有符号数字有关

另一种选择是一个补码,其中最高位也充当符号

在一个补码中添加4和-3:

0000 0100
1111 1100
两个补语相同

0000 0100
1111 1101

要获得所需的0000 0001,使用两种补码要容易得多。实现计算逻辑需要更少的门,这就更容易了。

你在说什么?减法通常是什么意思?编辑它使它更清楚。如果你使用2s恭维,你可以用加法代替减法,所以a-b==a+-b,而-b是2s恭维表示法。另外,创建2个恭维词是简单的倒置和添加1。所以所有的都归结为加法,两者都不比另一个难。但是,如果已经有一个加法电路,那么二者互补的方法可能会节省硬件。