在JavaScript中将二进制字符串解析为字节

时间:2014-10-17 17:52:03

标签: java javascript

我有一个像"11100011"这样的二进制字符串,我想把它转换成一个字节。我在 Java 中有一个工作示例,如下所示:

byte b1 = (byte)Integer.parseInt("11100011", 2);
System.out.println(b1);

此处输出为-29。但是,如果我在JavaScript中编写类似的代码,如下所示:

parseInt('11100011', 2);

我得到227的输出。

我应该编写哪些JavaScript代码来获得与Java相同的输出?

1 个答案:

答案 0 :(得分:3)

Java正在将byte解释为带符号的二进制补码数,由于最高位为1,因此它是负数.Javascript将其解释为无符号,因此它总是正数。

试试这个:

var b1 = parseInt('11100011', 2);
if(b1 > 127) b1 -= 256;