我正在Android
开发一个应用程序。我从网络接收价值并将其转换为1补码。
例如:
值为247
。
我将247
转换为二进制文件:1111 0111
在 1&#39>补充后加1,值为0000 1001
。
将值0000 1001
设为十进制为9
。
这意味着我的应用程序中的-9
,这就是我想要的值。
我尝试使用Integer.toBinaryString
将247
转换为1111 0111
。
并使用for loop
转换0 to 1
和1 to 0
。
但这似乎不是一个好方法......
如何实施上述示例?
答案 0 :(得分:2)
乘以-1
2'补码已经意味着ADD 1.如果你只是反转这个数字,它就被称为1补码。
但数字已经存储在二进制文件中。如果你得到247这意味着你将它视为UNSIGNED并且你想把它当作SIGNED对待。如果是8位,则将其视为已签名的字符'