我有一个像"11100011"
这样的二进制字符串,我想把它转换成一个字节。我在 Java 中有一个工作示例,如下所示:
byte b1 = (byte)Integer.parseInt("11100011", 2);
System.out.println(b1);
此处输出为-29
。但是,如果我在JavaScript中编写类似的代码,如下所示:
parseInt('11100011', 2);
我得到227
的输出。
我应该编写哪些JavaScript代码来获得与Java相同的输出?
答案 0 :(得分:3)
Java正在将byte
解释为带符号的二进制补码数,由于最高位为1,因此它是负数.Javascript将其解释为无符号,因此它总是正数。
试试这个:
var b1 = parseInt('11100011', 2);
if(b1 > 127) b1 -= 256;