2012-05-09 35 views
1

我有一个二进制字符串如下:将二进制补码中的带符号二进制字符串转换为int?

String bin = "1101"; 

,我想我的INT的值设置为-3,而不是13

什么是实现这一目标的最佳途径?

+0

你是否假设每个带有前导1的字符串都是负数? 13将不得不被表示为“01101”?或者你有固定的4位大小?基本上需要更多细节。 –

+0

是的,这是一个固定的大小'n'。 – Bonk

+0

哪里'n'是4? –

回答

6

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

138更大,所以你减去1613,使-3

+1

这是独创!爱它! – Bonk

相关问题