如何做1补码并在Android中加1?

时间:2014-09-09 03:06:28

标签: android twos-complement

我正在Android开发一个应用程序。我从网络接收价值并将其转换为1补码。


例如:

值为247

我将247转换为二进制文件:1111 0111

1&#39>补充后加1,值为0000 1001

将值0000 1001设为十进制为9

这意味着我的应用程序中的-9,这就是我想要的值。


我尝试使用Integer.toBinaryString247转换为1111 0111。 并使用for loop转换0 to 11 to 0。 但这似乎不是一个好方法......

如何实施上述示例?

1 个答案:

答案 0 :(得分:2)

乘以-1

2'补码已经意味着ADD 1.如果你只是反转这个数字,它就被称为1补码。

但数字已经存储在二进制文件中。如果你得到247这意味着你将它视为UNSIGNED并且你想把它当作SIGNED对待。如果是8位,则将其视为已签名的字符'