这题有两个思路:
第一个就是暴力法,遍历每位进行判断赋值,结合js的方法
var findComplement = function(num) {
let binString = num.toString(2)
let newString = ''
for(let i = 0;i<binString.length;i++){
if(binString[i] == '0' ){newString+='1'}
else if(binString[i] = '1'){newString+='0'}
}
return parseInt(newString,2)
};
第二种方法就是,数字的二进制表达各位与1进行异或取反。
var findComplement = function(num) {
let newStringArr = new Array(num.toString(2).length).fill(1).join('')
return parseInt(newStringArr,2) ^ num
};