负数的补码怎么变回原码?

负数的补码怎么变回原码?

从数学角度回答,假定在32位机器上。

设某负数X,则X+X(反)= 0xFFFFFFFF,所以X+X(反)+1 = 0,可以得出 0 - X = X(反)+ 1

这里 0 - X即定义为负数X的补码,这样,计算机在进行X-Y运算时实际可用X+Y(补)代替,硬件角度只需实现加法电路即可。

同样的道理,0-X(补)=X(补)(反)+1 = X,即已知负数补码只需对其各位取反加一即可得到原码。