0

我想得到相反数量的二进制数(表示 x--> -(x) 和 -(x) --> x)。

算法会是什么?我想改变所有位(“1”到“0”和“0”到“1”)并添加“1”。可以吗?

谢谢

4

2 回答 2

4

您的算法对于二进制补码是正确的:

-x = ~x + 1

对于一个人的补充,你会使用:

-x = ~x

对于符号大小数字:

-x = x ^ (1 << n)

n字中符号位的偏移量在哪里。我在这里使用 C 运算符表示法 -^是按位异或运算符,并且<<是左移。

对于另一种数字表示,您需要使用其他一些操作。

于 2011-03-28T20:28:09.800 回答
3

这取决于负数的表示方式。你需要二进制补码表示吗?你需要一个补码表示吗?

有关更多详细信息,请查看维基百科

于 2011-03-28T20:29:23.267 回答