淘小兔

位运算符是在数字底层(即表示数字的 32 个数位)进行操作的。如果a^b溢出或者a&b溢出,该怎么办?

方法1,两个数转2进制字符串,自己处理异或,后转数字

异或运算:

function xor(a,b){    a=a.toString(2).split('').reverse();    b=b.toString(2).split('').reverse();    var L=Math.max(a.length,b.length),re=[];  for(var i=0;i<L;i++){      re.push(   a[i]&& b[i]?(  a[i]!=b[i]?1:0):( a[i]||b[i] )  )  }  return parseInt( re.reverse().join(''),2);}

位与运算:

function and(a, b) {a = a.toString(2).split('').reverse();b = b.toString(2).split('').reverse();var L = Math.min(a.length, b.length), re = [];for (var i = 0; i < L; i++) {  re.push(a[i] & b[i] ? 1 : 0)}return parseInt(re.reverse().join(''), 2);}

 

方法2,你可以转16进制,分两段分别做运算,后再拼接 转数字

留给大家……

下载仅供下载体验和测试学习,不得商用和正当使用。

下载体验

请输入密码查看内容!

如何获取密码?

 

点击下载