如何执行二进制数的按位运算?

时间:2014-07-01 02:57:22

标签: javascript bit-manipulation

我需要对两个二进制字符串进行按位OR运算。

例如,如果二进制字符串是'110001'和'101101',那么我需要将结果设为'111101'。

我尝试了这个,但它给了我奇怪的结果。

console.log(110001 | 101101);

2 个答案:

答案 0 :(得分:3)

您不能在JavaScript中将二进制数写为文字。唯一允许的数字文字是:

  1. 十进制:1337(一千零三十七)。
  2. Octal:02471(基础8中的一千三百七十七)。
  3. 十六进制:0x539(基数16中的一千三百七十七)。
  4. 要编写二进制数,您需要将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表示(字符串)