将二进制补码中的带符号二进制字符串转换为int?

时间:2012-05-09 08:48:05

标签: java

我有一个二进制字符串,如下所示:

String bin = "1101";

我希望我的int值为-3而不是13

实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:6)

使用if (i >= k) i -= 2 * k;其中k是您的方案无法代表的最小正数。 (在这种情况下为8,因为0111为7而1000为负数。)

13大于8,因此您要从16中减去13,并-3