如何比较javascript / node js中的两个二进制值?

时间:2016-10-26 10:56:47

标签: javascript string compare comparison

我有两个字符串

var a = "10001010";
var b = "10110010";

那么在两个字符串中找出相似性的功能是什么, 在这种情况下,该函数将返回此值;

A和B共有5位数;如下所示;

var a =“ 10 001 010 ”;

var b =“ 10 110 010 ”;

如何获得此值?

我需要这两个字符串之间的相似之处。

3 个答案:

答案 0 :(得分:1)

您可以将bitwise XOR ^与字符串的数值和2 8 - 1的值一起使用。

在二进制结果中,单个1表示ab的相同值,而0表示不相同。

   value    binary  dec  comment
--------  --------  ---  ---------------------------------------
       a  10001010  138
       b  10110010  178
--------  --------  ---
       ^  00111000   56  it shows only the changed values with 1
2^^8 - 1  11111111  255
--------  --------  ---
       ^  11000111  199  result with 1 for same value, 0 for not

var a = parseInt("10001010", 2),
    b = parseInt("10110010", 2),
    result = (a ^ b) ^ (1 << 8) - 1;

console.log(result);
console.log(result.toString(2));

答案 1 :(得分:0)

我想,你可以像这样比较它们

("10001010" > "10110010") --> false
("10001010" < "10110010") --> true
("10001010" < "00110010") --> false
("00110010" == "00110010") --> true

答案 2 :(得分:0)

我写了一个逻辑来执行此操作enter link description here

var test = "10001010";
var test2  = "10110010";
var testArray = test.split('');
var testArray2 = test2.split('');
var resultArray = [];
for(index = 0; testArray.length > index;index++ ){
    if(testArray[index] === testArray2[index]){
     resultArray.push(testArray[index])
    }else{
      resultArray.push("*")
    }
}

console.log(resultArray.join(""));