Java二进制补码二进制到整数

ome*_*ame 4 java binary twos-complement

我知道转换的十进制到二进制Integer.toBinaryString(355) = 0000000101100011Integer.toBinaryString(-355) = 1111111010011101(其中,i取32位结果的低16位).

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

0000000000110010 =  50
1111111111001110 = -50
Run Code Online (Sandbox Code Playgroud)

而不是 1111111111001110 = 65486

我该怎么做?

das*_*ght 5

您需要将结果读入short.

short res = (short)Integer.parseInt("1111111111001110", 2);
System.out.println(res);
Run Code Online (Sandbox Code Playgroud)

打印-50.