如何使用javascript对字符串进行异或
我正在尝试对两个字符串进行异或运算。它用指数表示法返回值,但在我的例子中,我需要用0填充不匹配的字符串如何使用javascript对字符串进行异或,javascript,angularjs,Javascript,Angularjs,我正在尝试对两个字符串进行异或运算。它用指数表示法返回值,但在我的例子中,我需要用0填充不匹配的字符串 x1=“00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000”; x2=“00000000000000000000000000000000000011000000000000000000000000000000000000000000000000”; xo
x1=“00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000”;
x2=“00000000000000000000000000000000000011000000000000000000000000000000000000000000000000”;
xor1=parseInt(x1,2);
xor2=parseInt(x2,2);
console.log(xor1,xor2)代码>在代码中,您正在将字符串解析为二进制数parseInt(“0001100”,2)
是十进制的0b001100
,或12
。您试图解析的数字远远大于,但无论如何这都是无关紧要的
无法使用xor将前导零添加到数字中,因为前导数始终隐式存在,因此不会更改数字的表示形式:
(0b0000^0b100)==0b100
,因此将字符串(2)
-ing留给您的是“100”
你需要一个字符一个字符地检查你的字符串,然后从中构建一个字符串
让x=“11000000000000000000000000000000000000”;
让mask=“00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000”;
让结果=mask.split(“”).reduceRight(函数(partialResult,值,索引){
如果(索引 console.log(“结果为:”+Result)代码>这些数字太大,JavaScript无法精确处理。考虑使用字符串函数,一次只做一个字符并连接结果。只需为字符编写自己的XOR。请看一些想法。这与angularjs有什么关系?不要仅仅因为你在应用程序的其他部分使用了框架,就在语言问题上使用框架标签。。。。