2014-02-19 45 views
1

我公司拥有一批-2,我得到了使用此功能将数字转换的二进制补码形式有符号的十进制

Integer.toBinaryString(signed-int); 

所以我把-2,并得到这个字符串表示11111111111111111111111111111110

我执行很少的操作,现在我想将字符串11111111111111111111111111111110再次转换为-2。我该怎么做?

一般来说,如何将数字的二进制补码表示转换为其带符号的十进制形式?

+2

查找到的Integer.parseInt(字符串,整数) –

+0

哦酷@Sotirios!它的工作:) – pandaren

+0

值得一提的是,'整数'不是一个“带符号的十进制”。你需要使用'BigDecimal'或类似的东西来得到一个真正的十进制表示。你想要做的是从二进制字符串表示转换回二进制整数表示。 – tvanfosson

回答

4

试试这个

int x = (int)Long.parseLong(s, 2); 

Integer.parseInt无法解析"11111111111111111111111111111110",因为它把它作为一个积极的二进制数

相关问题