为什么补语的公式不起作用?

时间:2015-01-23 19:38:03

标签: algorithm bit-manipulation formula twos-complement ones-complement

我刚刚了解到要获得第一个补语的公式是

    -x = 2^n - x - 1

我已成功将其应用于二进制案例:

     -00001100 (base 2) = 2^8 - 12 - 1 
                        = 243
                        = 11110011 (1s)

但是,当我尝试将相同的公式应用于基数为5时,

     -1042 (base 4) = 5^4 - 1042 - 1
                    = 625 - 1042 - 1
                    = - 400 (which is not the answer)

有人可以帮助我吗?感谢

1 个答案:

答案 0 :(得分:1)

您无法使用2个不同的数字来计算任何公式,您必须使用它们的十进制表示(或您可以处理的其他表示)

我会在dec中尝试一下:

1042 (base 5) = 1* 5^3 + 4* 5^1 + 2 = 125 + 20 + 2 = 147 dec
5^4 - 147 - 1 = 477 dec
477 = 3* 5^3 + 4* 5^2 + 2 = 3402 (base 5)
基地5中的

5^4 - 1042 - 1 = 10000 - 1043 = 3402