【问题标题】:Java two's complement binary to integer [duplicate]Java二进制补码到整数[重复]
【发布时间】:2013-03-28 02:28:13
【问题描述】:

我知道使用 Integer.toBinaryString(355) = 0000000101100011 将十进制转换为二进制 Integer.toBinaryString(-355) = 1111111010011101(我取 32 位结果的低 16 位)。

我想做的是另一种方式,取一个 16 位二进制补码二进制字符串并转换为十进制。

即

0000000000110010 =  50
1111111111001110 = -50

而不是1111111111001110 = 65486

我该怎么做?

【问题讨论】:

    标签: java binary twos-complement


    【解决方案1】:

    您需要将结果读入short。

    short res = (short)Integer.parseInt("1111111111001110", 2);
    System.out.println(res);
    

    这个prints -50。

    【讨论】:

    • 谢谢它成功了!
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 2015-08-26
      • 2015-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多