內(nèi)容
給定一個(gè)正整數(shù),輸出它的補(bǔ)數(shù)。補(bǔ)數(shù)是對(duì)該數(shù)的二進(jìn)制表示取反。
注意:
給定的整數(shù)保證在32位帶符號(hào)整數(shù)的范圍內(nèi)。
你可以假定二進(jìn)制數(shù)不包含前導(dǎo)零位。
示例 1:
輸入: 5
輸出: 2
解釋: 5的二進(jìn)制表示為101(沒(méi)有前導(dǎo)零位),其補(bǔ)數(shù)為010。所以你需要輸出2。
示例 2:
輸入: 1
輸出: 0
解釋: 1的二進(jìn)制表示為1(沒(méi)有前導(dǎo)零位),其補(bǔ)數(shù)為0。所以你需要輸出0。
思路
代碼
/**
* @param {number} num
* @return {number}
*/
var findComplement = function (num) {
num = num.toString(2);
num = num.split('');
for (var i = 0; i < num.length; i++) {
num[i] = Math.abs(Number(num[i]) - 1); // 這里表示取反
}
num=num.join('');
return parseInt(num, 2);
};