我需要对两个二进制字符串进行按位OR运算。
例如,如果二进制字符串是'110001'和'101101',那么我需要将结果设为'111101'。
我尝试了这个,但它给了我奇怪的结果。
console.log(110001 | 101101);
答案 0 :(得分:3)
您不能在JavaScript中将二进制数写为文字。唯一允许的数字文字是:
1337
(一千零三十七)。02471
(基础8中的一千三百七十七)。0x539
(基数16中的一千三百七十七)。要编写二进制数,您需要将parseInt
与基数2一起使用。要将数字转换为二进制表示,请使用基数为2的toString
。因此,您可以将其编写为:
var a = parseInt("110001", 2);
var b = parseInt("101101", 2);
var c = a | b;
console.log(c.toString(2));
简单。
答案 1 :(得分:2)
你需要显式地将二进制表示转换为它的int等价物。 (否则它被解释为110001(基数10)):
console.log((parseInt('110001',2) | parseInt('101101',2)).toString(2));
然后将输出转换回它的基数2表示(字符串)