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

5

我有一个二进制字符串,类似于"11100011",想将其转换为字节。下面是一个在Java中运行的示例:

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

这里的输出将是-29。但是如果我在JavaScript中写一些类似的代码,就像下面这样:

parseInt('11100011', 2);

我得到了一个输出为227

为了得到与Java相同的输出,我应该编写什么JavaScript代码?

1个回答

6

Java将 byte 解释为有符号的二进制补码数字,因为最高位为1,所以是负数。而JavaScript将其解释为无符号数字,因此始终为正数。

请尝试如下代码:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接